无法以编程方式在Android中禁用GPS

时间:2014-01-28 13:19:37

标签: android gps

我开始知道我们不能以2.3.3版本的Android版本在程序上禁用Android,所以在我的Eclipse中我创建了一个目标sdk版本2.3.3的应用程序,我也安装了所需的所有库,但我仍然我无法禁用GPS。我正在尝试以下方法。

我也想知道。在Android 4.x.x中删除GPS更新时,是否会自动禁用GPS?

Void stopGPS()
{
    String provider = Settings.Secure.getString(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"));
        sendBroadcast(poke);
    }
}

2 个答案:

答案 0 :(得分:0)

Android指南已更改为4.0以上版本。对于4.0以上的版本,您无法以编程方式更改GPS。但是,您可以通过编程方式更改wifi。

您使用的代码是安全漏洞。它早已得到修复。应用程序无法以编程方式启用或禁用GPS,除非在root设备上。

Original Source from CommonsWare's Answer

然而,GPRS的安全漏洞仍然有效。

答案 1 :(得分:-2)

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);
    }
}