comment puis-je obtenir mon appareil android code du pays sans l'aide du GPS?
Un mobile android en fait ne sait très bien où il en est - mais est-il un moyen de récupérer le pays par quelque chose comme un code de pays ou le nom du pays?
Pas besoin de savoir la position GPS le code de pays ou le nom est suffisant,
et je suis en utilisant le code:
String locale = context.getResources().getConfiguration().locale.getCountry(Locale.getDefault());
System.out.println("country = "+locale);
mais il me donne le code "NOUS"
mais mon appareil a gardé en inde;
est-il possible de trouver de l'appareil actuel code du pays sans l'aide du GPS ou du Fournisseur de Réseau.
parce que je suis à l'aide de la Tablette.
Merci à l'Avance.
Vous devez vous connecter pour publier un commentaire.
Vous ne devriez pas passer quelque chose à
getCountry()
, supprimerLocale.getDefault()
String locale = context.getResources().getConfiguration().locale.getCountry();
Vous pouvez simplement utiliser ce code,
Ce sera le retour de "NOUS" si votre réseau connecté à l'est des états-unis. Cela fonctionne sans carte SIM même. Espérons que cela permettra de résoudre votre problème.
Utiliser ce lien http://ip-api.com/json ,cela fournira toutes les informations sous forme de json. À partir de ce json, vous pouvez obtenir le pays facilement. Ce site fonctionne à l'aide de votre IP actuelle,il détecte automatiquement l'adresse IP et le sendback détails.
Docs http://ip-api.com/docs/api:json Espère que cela aide.
C'est ce que j'ai.
N. B. - c'est une 3ème partie de l'api, ne pas l'utiliser comme une solution de premier choix. Et aussi ne sais pas si c'est gratuit ou pas.
L'objet d'une réponse a retiré de code. Vous avez besoin pour mettre en œuvre cette:
Voici un exemple complet. Essayez d'obtenir le code pays de TelephonyManager (à partir de la carte SIM ou les appareils CDMA), et si pas disponible, essayez d'obtenir à partir de la configuration locale.
Aussi une autre idée est de tenter une demande d'API comme dans cette réponse.
Références ici et ici
Pour certains appareils, si la langue par défaut est définie différents (un indien peut mettre l'anglais (US)), puis
donnera une fausse valeur .Donc, cette méthode n'est pas fiable
Aussi, getNetworkCountryIso() la méthode de TelephonyManager ne fonctionne pas sur les appareils qui n'ont pas de carte SIM (WIFI comprimés).
Si un périphérique n'a pas de SIM ensuite, nous pouvons utiliser le fuseau Horaire pour obtenir le pays. Pour des pays comme l'Inde, cette méthode fonctionne
exemple de code utilisé pour vérifier les pays de l'est de l'Inde ou pas
(Id fuseau horaire : asia/calcutta)
J'ai créé une fonction d'utilité (testé une fois sur un appareil à un endroit où j'ai été incorrectes pays code sur la base de paramètres régionaux). Espérons que l'aide.
Référence: https://github.com/hbb20/CountryCodePickerProject/blob/master/ccp/src/main/java/com/hbb20/CountryCodePicker.java#L1965
Pas besoin d'appeler les api. Vous pouvez obtenir de code de pays à partir de votre appareil qui se trouve juste utiliser cette fonction