2013-07-24 57 views
0

我的應用程序通過啓用Wi-Fi/3G的用戶位置,但是在電話設置中有一個選項禁用,不允許應用程序獲取您的位置。Android - 定位服務,禁用無線網絡

我的問題是我怎麼能檢查,如果這是啓用/禁用之前,我試圖採取他們的位置?

目前我使用:

Criteria criteria = new Criteria(); 
criteria.setAccuracy(Criteria.ACCURACY_COARSE); 
String provider = LocationCall.getBestProvider(criteria, true); 
    if (provider == null) { 
     //No internet connection available OR location services has been turned off 
    } 

這工作,但我希望能夠告訴用戶究竟爲什麼我不能把自己的位置。


解決方案:

String provider = LocationCall.getBestProvider(criteria, true); 
    if ("gps".equals(provider) || provider == null) { 
     Toast.makeText(getApplicationContext(), "Use Wireless Networks has been disabled in location settings", Toast.LENGTH_LONG).show(); 
    } 

如果供應商僅等於GPS或爲null,則該用戶已禁用應用程序通過網絡獲得自己的位置。

+0

只需從你的AndroidManifest.those中刪除所有的權限,你不想得到的位置。 –

回答

1

我寫了一篇關於Android位置服務的博客文章,其中包含有關如何檢查啓用提供程序的示例代碼,提醒用戶,然後將它們帶到設置屏幕以啓用它們。你可以在這裏找到它:http://www.scotthelme.co.uk/blog/android-location-services/

+0

閱讀底部的更新,這就是你需要的一點。 –

+0

正是我想找的。謝謝。 –

+0

無效鏈接:https://scotthelme.co.uk/blog/android-location-services/ – vida