0

Activity OnCreated 時に GPS を開きたい。このコードを使用していますが、機能しません。次のエラー メッセージが表示されます。

java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.location.GPS_ENABLED_CHANGE from pid=3818, 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);`
4

1 に答える 1

0

セキュリティ/プライバシーの問題のため、GPS をプログラムで有効/無効にすることはできません。

このスレッドを参照している場合、このバグは修正されています。

これを使用して GPS 設定ページを開き、ユーザーが手動で GPS を有効または無効にできるようにします。

startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));
于 2016-07-22T09:04:01.923 に答える