我知道。不要这样做。我不在乎。它适用于root应用程序。
该应用已通过/system/app/
权限
0777
我之前使用过:
ContentResolver cr = context.getContentResolver();
Settings.Secure.setLocationProviderEnabled(cr, LocationManager.GPS_PROVIDER, !isGpsOn);
这就是我在4.4上尝试它的方式,因为它被弃用了:
int value;
if (isGpsOn)value = Settings.Secure.LOCATION_MODE_OFF;
else value = Settings.Secure.LOCATION_MODE_HIGH_ACCURACY;
Settings.Secure.putInt(cr, Settings.Secure.LOCATION_MODE, value);
它正在默默地失败(根据一些用户报告)。如何从系统文件夹中的应用程序正确地使用Android 4.4切换GPS?
答案 0 :(得分:4)
的代码不要这样做。 :)
针对Android rooted设备的GPS切换小部件。即便如此,它也很好 那些ROM和内核,其他软件都失败了。
使用您的代码,只需检查:
希望您在清单中声明以下权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
我在root用户的LG Optimus,android 4.0 / 4.1上使用了它。 据说这可能不再适用,但我不确定所有设备和o.s。:
使用标志检查和此代码将其打开/关闭:
try {
Settings.Secure.putString (context.getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED, String.format ("%s,%s",
Settings.Secure.getString (context.getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED), LocationManager.GPS_PROVIDER));
} catch(Exception e) {}