我的应用程序通过曾经启用的 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,则用户已禁用应用程序以通过网络获取其位置。