Ich habe einen Einblick in die Angelegenheit für Sie.
- Die MSISDN kann auf der SIM-Karte gespeichert werden, aber die meisten Netzbetreiber (alle Anbieter in Südafrika) haben die MSISDN auf der SIM-Karte nicht speichern. Dafür gibt es mehrere Gründe:
- Dynamische MSISDN-Zuordnung: Prepaid-SIMs werden bei der ersten Verwendung manchmal einer MSISDN zugewiesen. Das bedeutet, dass das Netzwerk über einen Pool verfügbarer MSISDNs verfügt und diese immer dann zuweist, wenn eine neue Prepaid-SIM-Karte online geschaltet wird. Dies bedeutet, dass sie, wenn die SIMs ausgeliefert werden, noch keine MSISDN haben, was bedeutet, dass Sie vor dem Versand der SIMs keine MSISDN speichern können. Einige Netzwerke "verfallen" MSISDN-Zuordnungen nach einem Zeitraum der Inaktivität, insbesondere wenn ihre verfügbaren Nummern niedrig sind, und geben diese Nummern an den verfügbaren Pool zurück.
- Portabilität von Mobilnummern: In einigen Ländern können Mobilfunkteilnehmer ihre MSISDN behalten, jedoch das Netzwerk wechseln. Dies bedeutet, dass die MSISDN von einer SIM für 1 Netzwerk zu einer SIM für ein anderes Netzwerk verschoben wird.
So ist der Benutzer endet oft mit dem MSISDN Eintrag oben auf der SIM leer zu sein. Der Benutzer kann weiterhin die MSISDN auf der SIM selbst speichern, aber dies ermöglicht ihnen auch, irgendeine beliebige Nummer zu speichern, und es ist nicht garantiert, dass sie eingestellt ist oder sogar die tatsächliche Telefonnummer des Teilnehmers ist.
2. Diejenigen Anrufe, die Sie gefragt haben, holen die Nummer, die auf der SIM-Karte gespeichert ist. Wenn die Nummer nicht festgelegt ist, erhalten Sie sie nicht, und wenn der Benutzer die falsche Nummer festgelegt hat, haben Sie die falschen Details.
3. Richtig, diese Zeichenfolge wird von der SIM-Karte abgerufen. Die einzige semi-zuverlässige Möglichkeit, MSISDN zu erkennen, ist über WAP/WEB, wenn der Mobile Operator die MSISDN in die Header integriert (Sie können einige Webview-Tricks machen, um zu sehen, welche Header durchkommen) - wie Sie sehen Dies ist der Fall, wenn das Netzwerk dies unterstützt und wenn sich der Benutzer in Mobile Data befindet - dh es funktioniert nicht, wenn der Benutzer auf WiFi ist. Der andere Mechanismus, den ich mir vorstellen kann (der einzige garantierte Mechanismus, den ich mir vorstellen kann), ist über eine USSD - Sitzung, da Sie immer die richtige MSISDN vom Operator bekommen, aber ich habe keine Möglichkeit gefunden, eine .a zu öffnen USSD-Sitzung und Lesen der Antwort (zumindest in Android). Ich habe einen USSD-Dienst, dessen einziger Ausgang die MSISDN ist, aber das hat sich leider noch nicht als brauchbar erwiesen.
Vielen Dank, darryn.ten. Ich glaube, viele Menschen werden von Ihrer Antwort so viel profitieren. Und ich werde versuchen, die MSISDN über die Header im GPRS-Modus zu bekommen. –