Android-位置服务,禁用无线网络
我的应用程序通过Wi-Fi/3G获取用户的位置,Wi-Fi/3G一直处于启用状态,但手机设置中有一个选项可禁用,不允许应用程序获取您的位置 我的问题是,在我尝试获取他们的位置之前,如何检查这是否已启用/禁用 目前我正在使用:Android-位置服务,禁用无线网络,android,android-location,Android,Android Location,我的应用程序通过Wi-Fi/3G获取用户的位置,Wi-Fi/3G一直处于启用状态,但手机设置中有一个选项可禁用,不允许应用程序获取您的位置 我的问题是,在我尝试获取他们的位置之前,如何检查这是否已启用/禁用 目前我正在使用: Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_COARSE); String provider = LocationCall.getBestProvider(criter
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或为空,则用户已禁用应用程序以通过网络获取其位置。我写了一篇关于Android定位服务的博客文章,其中包含如何检查哪些提供程序已启用的示例代码,提醒用户,然后将其带到设置屏幕以启用它们。你可以在这里找到它:只需从你的AndroidManifest中删除所有权限。那些你不想从中获取位置的权限。这正是我要找的。谢谢