ルート権限を取得してスーパーユーザーの権限をリクエストした後、アプリケーションでGPSを有効/無効にするにはどうすればよいですか?
6168 次
3 に答える
2
ルート権限を取得されたデバイスでこれを試してください高精度モードでGPSを有効にするためにsuを使用してください
Process proc=Runtime.getRuntime().exec(new String[]{"su",
"pm grant com.your_app_packagename android.permission.WRITE_SECURE_SETTINGS",
"settings put secure location_providers_allowed gps,network,wifi"});
proc.waitFor();
これらのコマンドをバックグラウンドスレッドで実行します:)
さらに、ここでこのリンクを参照できます
于 2016-03-16T10:09:27.157 に答える
1
ユーザーのプライバシーを保護することは想定されていません。ただし、バグを悪用することで可能です。方法については、これを参照してください。
AndroidでGPSをプログラムで有効または無効にするにはどうすればよいですか?
これはAndroidのすべてのバージョンで機能するとは限らないことに注意してください
-https://android.googlesource.com/platform/packages/apps/Settings/+/4b21f7cd9424eeb83838071a4419912ee5d5e41dを参照してください
修正されたことを示していますが、どのバージョンに修正があるかわかりません(ある場合)。
于 2011-05-22T00:40:11.013 に答える
1
このコードは、アプリがに移動された場合にROOTED電話で機能し、マニフェストで次の権限を持っています。 /system/aps
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
コード
private void turnGpsOn (Context context) {
beforeEnable = Settings.Secure.getString (context.getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
String newSet = String.format ("%s,%s",
beforeEnable,
LocationManager.GPS_PROVIDER);
try {
Settings.Secure.putString (context.getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
newSet);
} catch(Exception e) {}
}
private void turnGpsOff (Context context) {
if (null == beforeEnable) {
String str = Settings.Secure.getString (context.getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if (null == str) {
str = "";
} else {
String[] list = str.split (",");
str = "";
int j = 0;
for (int i = 0; i < list.length; i++) {
if (!list[i].equals (LocationManager.GPS_PROVIDER)) {
if (j > 0) {
str += ",";
}
str += list[i];
j++;
}
}
beforeEnable = str;
}
}
try {
Settings.Secure.putString (context.getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
beforeEnable);
} catch(Exception e) {}
}
于 2017-05-16T04:33:41.790 に答える