2015-03-06 15 views
5

Kullanıcının cihazının GPS özelliği kapalı olsa ve uygulamanın konum bilgilerine erişmesine izin vermese bile, cihazın bulunduğu ülkeyi (iso3) belirlemem gerekir.Kullanıcı konum ayarları ne olursa olsun bir Android cihazının mevcut ülke konumu nasıl belirlenir?

Ayrıca, sim kart içermeyen ve dolayısıyla telefonManager'ı kullanamayan tabletleri de hesaba katmak zorundayım. Ben (çünkü bu nedenlerden ayrıca: LocationManager requestLocationUpdates doesn't work) konum yöneticisini kullanabilirsiniz inanmıyorum Bu nedenle

ben gerekecektir düşünüyorum yaklaşım üçüncü bir tarafa basit bir HTTP isteği yapmaktır ip konumu api: örn. http://www.ipinfodb.com/ip_location_api.php veya https://freegeoip.net

Bunu yapmanın en iyi yolu var mı? Kullanılacak en iyi açık api nedir?

+0

yardımcı olacağını olabilir. Belirli bir şirket ağı, Hindistan'dayken beni Tayvan'a yönlendirmeme neden oldu. Uygulamanızın Hindistan’da kullanılmasına izin verildiğinde kullanıcılarınız kızardı, ancak uygulamanız "Üzgünüz, Tayvan desteklenmiyor" şeklinde bir iletişim kutusu açar. –

cevap

5

Üçüncü taraf ip konumu API'sine yaklaşımınız şu anda doğru görünüyor. Bu akılda VPN ve kurumsal ağlar tutun size

http://ip-api.com/docs/api:json

http://ip-api.com/json

+0

Bu hizmet harika çalışıyor gibi görünüyor, ancak bu hizmet nedir? Hizmetin kuralları hakkında bilgi yoktur. – JohnRock

+0

Benim Ar-Ge ve excprience başına – Sadiq

+0

değil Ben yukarıda belirtilen hizmeti kullanmasa da, ben bu adama güvenmek yerine bu soruya cevap vermek için inşa ettiğimiz özel bir api son noktaya karar verdiğim için, bu doğru olarak işaretleyeceğim. – JohnRock

3

Sen TelephonyManager

TelephonyManager tm = (TelephonyManager)this.getSystemService(this.TELEPHONY_SERVICE); 
String countryCode = tm.getNetworkCountryIso(); 

Güncelleme kullanabilirsiniz: Eğer ben bu denemenizi öneririz ediyorum telefon kullanamaz beri olsun, kullanıcılar giriş dan olduğunda onlar kurulum cihazı.

String locale = context.getResources().getConfiguration().locale.getCountry(); 
+0

Sim kartsız tabletlerin bir TelephonyManager'ı olmayacak, bundan emin olamıyorum. Bunu dahil etmek için sorumu güncelledim. Teşekkürler – JohnRock

+0

Bu ilginç bir fikir. Denemedim, ama bu sahte değil mi? Bir kullanıcının ad hoc ayarlayabileceği bir şeye güvenemedim. – JohnRock

+0

Emin değilim, bunun için ne kullanacağınızı sorabilir miyim? –

İlgili konular