0

我的应用程序通过曾经启用的 Wi-Fi/3G 获取用户位置,但是手机设置中有一个选项可以禁用以不允许应用程序获取您的位置。

我的问题是如何在尝试获取他们的位置之前检查是否启用/禁用了此功能?

目前我正在使用:

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();
    }

如果 provider 仅等于 gps 或为 null,则用户已禁用应用程序以通过网络获取其位置。

4

1 回答 1

1

我写了一篇关于 Android 定位服务的博文,其中包含有关如何检查启用了哪些提供程序、提醒用户然后将它们带到设置屏幕以启用它们的示例代码。你可以在这里找到它:http ://www.scotthelme.co.uk/blog/android-location-services/

于 2013-07-24T09:26:47.610 回答