2016-07-22 15 views
0

アクティビティが作成されたときにGPSを起動します。私はこのコードを使用していますが、それは動作しません。Android GPSを自動的に開く

java.lang.SecurityException:許可拒否:PID = 3818から放送android.location.GPS_ENABLED_CHANGEを送信することは許されない、UID = 10084 分SDK API 17マックス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);` 
+0

、GPSの設定ページを開き、ユーザーが手動でGPSを有効または無効にできるように、これを使用しても、Googleのポリシーに違反することができます。あなたができることは、マシュマロとアップデバイス上のgpsにアクセスするための実行時アクセス許可を追加することです。 – tk1505

答えて

0

GPSを有効にする/無効にすることは、セキュリティ/プライバシーの問題のために許可されていません。

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

あなたはセキュリティの問題が..あなたがあなたのコードから開いているGPSをすることはできません

startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)); 
+0

私はこれを自動的に行うことはできませんか? –

+0

@JackMarquiesどちらが設定を開いたり、GPSを切り替えるのですか? –

+0

悪い考えです。私はプログラムでそれを開きたい... –

関連する問題