當我的應用程序運行時,我想檢測當前位置的國家名稱,併爲該特定國家/地區名稱做一些事情,我可以使用geocoder,gps輕鬆完成。但是我想從Locale中獲取它,或者如果有更多的東西可用。如何以編程方式檢測Android設備當前位於哪個國家而不使用GPS?
回答
我不知道Android API是否允許您檢查相關GSM網絡的提供商代碼。如果可以的話,您可以使用此代碼進行檢查,即對照此列表:http://www.techgsm.com/page/gsm-provider-codes/network-provider-identify-codes.html以查明手機在哪個國家/地區。
+1這太棒了......從來沒有想過。提供者代碼也稱爲MCC。在其他地方發現了一個可能有所幫助的問題:http://stackoverflow.com/q/890366/250725 ...雖然在飛行模式下可能無法工作。 – psubsee2003
使用此鏈接http://ip-api.com/json,這將提供所有信息爲json。從這個json你可以很容易地得到國家。本網站使用您的當前IP,它會自動檢測IP和回送細節。
Docs http://ip-api.com/docs/api:json 希望它有幫助。
這就是我得到的。
{
"as": "AS55410 C48 Okhla Industrial Estate, New Delhi-110020",
"city": "Kochi",
"country": "India",
"countryCode": "IN",
"isp": "Vodafone India",
"lat": 9.9667,
"lon": 76.2333,
"org": "Vodafone India",
"query": "123.63.81.162",
"region": "KL",
"regionName": "Kerala",
"status": "success",
"timezone": "Asia/Kolkata",
"zip": ""
}
但它有侷限性。他們的系統將自動禁止每分鐘執行超過150次請求的IP地址。 –
你可以(也應該)使用Android的國家檢測服務。該服務由三個方法組成,所有這些方法都在.aidl中定義,這些方法使您可以獲取國家/地區代碼,註冊偵聽器或將其刪除。具體來說,您需要第一個 - Country detectCountry();
,它返回一個android.location.Country對象(AOSP中的frameworks/base/location/java/android/location/Country.java)。我假設你知道如何以編程方式調用方法(你需要getSystemService(「country_detector」))。
要在命令行測試,嘗試:
[email protected]:/ $ service call country_detector 1
Result: Parcel(
0x00000000: 00000000 00000001 00000002 00530055 '............U.S.'
0x00000010: 00000000 00000003 1d809dda 00000000 '................')
對象序列基本上沒有什麼比2字母國家代碼(位置:美國)越多,來源(在這裏,3,這意味着這是收集來自Locale)和一個時間戳(1d809dda ...),這實際上並不重要。由於對象是Parcelable,所以您不必擔心序列化。
- 1. 以編程方式爲當前商店設置默認國家/地區,magento?
- 2. 如何以編程方式檢測iOS設備
- 3. 如何以編程方式獲取/設置當前位置?
- 4. 如何以編程方式獲取android中的當前位置?
- 5. 如何以編程方式檢測android前置攝像頭
- 6. 如何通過JavaScript檢索當前位置使用GPS跟蹤器設備?
- 7. 如何以編程方式檢測物理單向(非旋轉)Android設備?
- 8. 如何檢測以編程方式觸摸哪個子視圖
- 9. 如何在android中使用GPS座標檢索當前位置?
- 10. Android:如何以編程方式識別設備是否位於室內?
- 11. 以編程方式模擬onFling()而不是檢測它(Android)
- 12. 以編程方式使用藍牙連接兩個Android設備
- 13. 以編程方式配置Android設備
- 14. 如何以編程方式檢測64位或32位機器?
- 15. 如何以編程方式檢查應用商店地區/國家/地區?
- 16. 如何在iOS 6中以編程方式獲取設備的當前方向?
- 17. 如何檢測設備中的A-GPS?
- 18. 以編程方式啓用GPS(無導航到位置設置)
- 19. 如何以編程方式監視android設備可用空間
- 20. 以編程方式顯示基於IP國家的Div
- 21. Android:使用KML文件和地理位置檢測國家
- 22. 如何在rooted android上以編程方式禁用/啓用gps?
- 23. 如何在Android 4.4中以編程方式啓用/禁用GPS?
- 24. Android國家檢測器找不到
- 25. iOS使用GPS設備獲取當前位置
- 26. 如何在android中以編程方式禁用耳機檢測?
- 27. 以編程方式查找設備是否支持GPS?
- 28. android gps如何顯示當前位置
- 29. 如何以編程方式打開GPS
- 30. 以編程方式檢查Android設備上的LTE功能
*「做一些東西」*具體是什麼東西? –
我想做一個貨幣換算器,所以我需要檢測應用程序啓動的位置並設置該國的默認貨幣 – Reyjohn
您可以使用Google定位服務API而不使用GPS嗎?或者你想避免這種情況? – psubsee2003