如何以4.0及以上的方式编程设置GPS开/关

时间:2014-01-14 18:27:18

标签: android gps

我正在开发一款应用程序,我可以Toggle Button打开/关闭GPS。我浏览了这个链接1st Reference以及此2nd Reference

由于答案是有争议的,我无法弄明白。我使用DU BATTERY SAVER,它有一个小部件,我可以打开/关闭GPS。我想要使​​用相同的功能。

2 个答案:

答案 0 :(得分:0)

  

如何在4.0及以上版本中以编程方式设置GPS开启

出于隐私原因,这是不可能的。

  

我使用DU BATTERY SAVER,它有一个小工具,我可以打开/关闭GPS

幸运的是,它们似乎没有您描述的功能,至少在免费版中是否适用于无根设备。

答案 1 :(得分:0)

您可以尝试以下代码snipp

public void turnGPSOn()
{
     Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
     intent.putExtra("enabled", true);
     this.ctx.sendBroadcast(intent);

    String provider = Settings.Secure.getString(ctx.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
    if(!provider.contains("gps")){ //if gps is disabled
        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")); 
        this.ctx.sendBroadcast(poke);


    }
}
// automatic turn off the gps
public void turnGPSOff()
{
    String provider = Settings.Secure.getString(ctx.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
    if(provider.contains("gps")){ //if gps is enabled
        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")); 
        this.ctx.sendBroadcast(poke);
    }
}