如何以编程方式启用和禁用NETWORK_PROVIDER

时间:2013-05-30 21:52:38

标签: android gps

我们都知道Android上的GPS问题。

我们如何为NETWORK_PROVIDER创建相同的turnOnGps功能Bellow,我想打开两者。

private void turnGPSOn(){   

String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);   
if(!provider.contains("gps")){      
    final Intent poke = new Intent();  
    poke.setClassName("com.android.settings","com.android.settings.widget.SettingsAppWidgetProvider");           poke.addCategory(Intent.CATEGORY_ALTERNATIVE);   
    poke.setData(Uri.parse("3"));      
    sendBroadcast(poke);  
}  }    

2 个答案:

答案 0 :(得分:1)

只需添加CommonsWare提到的内容,该方法仅适用于2.2及以下的Android版本。

但是,您可以使用下面的简单代码:

startActivity(new Intent("android.settings.LOCATION_SOURCE_SETTINGS"));

这会将用户直接带到可以启用/禁用基于位置的选项的屏幕。

有关更多设置,请参阅here (docs)

希望这有帮助

答案 1 :(得分:0)

幸运的是,您在上面引用的脚本小子技术不适用于现代版本的Android。由于非常明显的隐私原因,您无法自行启用或禁用任何位置提供程序。请允许用户通过操作系统提供的机制(设置,Power Control应用程序小部件等)启用或禁用位置提供程序。