Android自动打开GPS

时间:2016-07-22 08:55:01

标签: java android gps geolocation android-gps

我希望在活动OnCreated时打开GPS。我正在使用此代码,但它不起作用。我收到此错误消息:

  

java.lang.SecurityException:Permission Denial:不允许从pid = 3818发送广播android.location.GPS_ENABLED_CHANGE,uid = 10084   Min SDK API 17 Max SDK API 23

我习惯了这段代码:

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

本条例我试试。但我得到同样的问题。

Intent intent=new Intent("android.location.GPS_ENABLED_CHANGE");
intent.putExtra("enabled", true);
sendBroadcast(intent);`

1 个答案:

答案 0 :(得分:0)

由于安全/隐私问题,不允许以编程方式启用/禁用GPS。

如果您指的是this主题,那么此错误已得到修复。

您可以使用此功能打开GPS设置页面,让用户手动启用或禁用GPS,

 <input type="email"
    oninvalid="setCustomValidity('Invalid email!')"
    onchange="try{setCustomValidity('')}catch(e){}" />