Rufen Sie die lokale Ortsnetzkennzahl mit Android an
Ich würde gerne wissen, wie kann ich das Gerät/user area code in meine android-app
Ich weiß, es ist eine lib namens TelephonyManager aber ich konnte nicht finden, dass die Ländercode-Funktion
Mich klar:
Ich habe eine Aktivität, die fordert den Benutzer zur Eingabe seiner Handy-Nummer und ich will, dass die Vorwahl aus dem Gerät (aus seinem Träger?)
Wenn ich öffne meine app in new york, das ich bekommen würde +212 als Sie den code und ein Textfeld, um meine eigene Nummer
InformationsquelleAutor der Frage IB. | 2011-03-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
1 - Fügen Sie Dieses Array zu Strings.xml Datei
2-CopyThis Funktion, Um Ihre Klasse
3-Rufen Sie Die Funktion GetCountryZipCode()
4-schreiben, Danke Wais.
InformationsquelleAutor der Antwort Wais
Sorry für die Wiederbelebung eines Toten Threads, aber ich habe eine Weile versucht, dieses Problem zu lösen so hoffentlich meine Antwort jemand anderes helfen.
Beispiel in der original-Frage ist verwirrend, Sie sagen, das Sie Anhängen möchten, die Landesvorwahl, aber geben Sie New York area code 212 als Beispiel; Das ist nicht ein Land, code, es ist ein lokaler Vorwahl. Die Landesvorwahl für die USA ist 1. So würden Sie wollen, dass die endgültige Zahl Aussehen "1-212-xxx-xxxx". Meine Antwort weiter unten erläutert, wie Sie bestimmen die Land-code, nicht die Ortsvorwahl.
Um die Landesvorwahl für Ihre eigene Nummer verwenden getSimCountryIso(). Verwenden Sie nicht getNetworkCountryIso(); getNetworkCountryIso zurückkehren wird, das Land, in dem du dich gerade befindest, aber wenn man unterwegs ist, dann kommt wieder das falsche Land. Zum Beispiel, wenn Sie aus Albanien, aber Reisen in New York getSimCountryIso zurückkehren wird, "al", aber getNetworkCountryIso wird wieder "uns". Natürlich, wenn Sie verwenden Sie die Landesvorwahl für die USA, Sie haben die falsche Nummer.
Haben Sie jetzt die zwei Zeichen Ländercode; zum Beispiel Kanada wird "ca". Anschließend können Sie diese als lookup-Schlüssel für die Tabelle (erhalten aus http://www.sikosoft.com/item/international_telephone_country_codes_in_xml_format_using_iso_639-1).
Seit Ländercodes nicht immer ändern, ist es akzeptabel, zu codieren einer lookup-Tabelle in Ihrer Anwendung. Leider scheint es nicht zu sein, einen direkten Weg, um dem Anwender die aktuelle Ländercode.
InformationsquelleAutor der Antwort OldSchool4664
Diese Frage mir so sehr geholfen hat, möchte ich Ihnen allen eine Klasse, stellen country code vom Handy-code und Umgekehrt.
Verwendung:
CountryCodes.getCode(String country)
gibt internationalen code von Land ZeichenCountryCodes.getCountry(String code)
gibt Land Anzeichen von internationalen codeEiner Instanz dieser Klasse können als adapter zu Ansichten, zum Beispiel in der Tätigkeit onCreate:
Was folgt, ist der class-code
Ich bin mit es und scheint zu arbeiten, aber, wissen Sie, nur Tod und Steuern sind sicher. Fühlen Sie sich frei, um Sie anzupassen und Korrekturen vorschlagen.
HTH
InformationsquelleAutor der Antwort TechNyquist
in diesem Fall würde das so Aussehen:
So hat niemand zu schauen und zu überprüfen (Kontext ist eine lokale variable eine gültige Context-Objekt).
Konstanten.DEVICE_COUNTRY ist vom Typ String 🙂 (nur eine variable)
InformationsquelleAutor der Antwort cV2
Wenn Sie geschehen, um der Nutzung von Google - libphonenumber sowieso, und wenn Sie arbeiten mit Handy-Nummern, ist es eher wahrscheinlich, dass Sie tun, können Sie Ihre internen Daten, beschreibt die gleiche. Es ist nicht öffentlich, so dass Sie müssen verwenden Sie reflektion, um es zu erreichen:
Dann kannst du suchen oder Prozess, der Karte, um die Daten, die Sie wollen.
InformationsquelleAutor der Antwort Gábor
Ich weiß, dass es viel zu spät. Aber ich habe einen Teig-Lösung. Da tut es mit der Liste der
String
und Durchlaufen könnte es zu verlangsamen. MitHashmap
wäre ein batter Lösung für Sie.Ich schrieb eine
PhoneUtil
Klasse. Hier ist der code ( ich habe nur 20 Länder, aber Sie können mehr hinzufügen )InformationsquelleAutor der Antwort Nouman Ghaffar
In der Klasse TelephonyManager, ich finde eine Methode
public String getNetworkCountryIso ()
dies kann sein, was Sie wollen. Es gibt auch eine andere Methode, die zurückkehren können, mehr Infos über das Telefon. Sie können Lesen http://en.wikipedia.org/wiki/List_of_mobile_country_codesum zu sehen, welches Land ist vertreten durch ein MCC.InformationsquelleAutor der Antwort Huang
Dies ist der code in deiner Main-Aktivität, um den code zu ersetzen, Wais gebucht in der Nähe der oben auf dieser Seite. Nehmen Sie das array, das Wais gepostet, und fügen Sie, dass Ihre app in den Ressourcen. Vielleicht habe ich etwas geändert, der name des Arrays gespeichert werden, in der Ressourcen, als die anderen, sollte dieser code funktionieren gut und werden leichter zu Lesen, wenn Sie lernen, sind:
InformationsquelleAutor der Antwort JamisonMan111