我的应用通过启用的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();
}
如果提供者仅等于gps或为null,则用户已禁用应用程序以通过网络获取其位置。
答案 0 :(得分:1)
我写了一篇关于Android位置服务的博客文章,它包含有关如何检查哪些提供程序已启用的示例代码,提醒用户然后将其带到设置屏幕以启用它们。您可以在此处找到它:http://www.scotthelme.co.uk/blog/android-location-services/