以编程方式切换GPS Android 4.4

Ree*_*eed 10 gps android root

我知道.不要这样做.我不在乎.这是一个根应用程序.

该应用程序已/system/app/获得0777许可安装

我以前用过:

ContentResolver cr = context.getContentResolver();
Settings.Secure.setLocationProviderEnabled(cr, LocationManager.GPS_PROVIDER, !isGpsOn);
Run Code Online (Sandbox Code Playgroud)

这是我在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);
Run Code Online (Sandbox Code Playgroud)

并且它默默地失败了(根据一些用户报告).如何从系统文件夹中的应用程序正确切换GPS与Android 4.4?

Par*_*rth 4

不要这样做。:)

检查GPS TOGGLE的代码

适用于已取得 root 权限的 Android 设备的 GPS 切换小部件。即使对于那些 ROM 和内核来说它也能很好地工作,而其他软件却失败了。

使用您的代码,只需检查:希望您在清单中
声明了以下权限:

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
Run Code Online (Sandbox Code Playgroud)

我在 root 后的 LG Optimus、android 4.0/4.1 上使用过这个。据报道,这可能不再有效,但我不确定它是否适用于所有设备和操作系统:

通过标志检查和以下代码将其打开/关闭:

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) {}
Run Code Online (Sandbox Code Playgroud)