测试环境:
Android5.0+
测试目标:
强制打开GPS
测试所需必备条件:
测试APP必须具有ROOT权限,或者是system级别app
关键代码:
/** * mode can be one of: * android.provider.Settings.Secure.LOCATION_MODE_HIGH_ACCURACY * android.provider.Settings.Secure.LOCATION_MODE_OFF * android.provider.Settings.Secure.LOCATION_MODE_SENSORS_ONLY; * android.provider.Settings.Secure.LOCATION_MODE_BATTERY_SAVING * @param context * @param mode */ public static void setLocationMode(Context context,int mode) { Intent intent = new Intent("com.android.settings.location.MODE_CHANGING"); int currentMode = Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF); intent.putExtra("CURRENT_MODE", currentMode); intent.putExtra("NEW_MODE", mode); Log.e("jerry", "currentMode="+currentMode + " newmode="+mode); context.sendBroadcast(intent, android.Manifest.permission.WRITE_SECURE_SETTINGS); Settings.Secure.putInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE, mode); }
ps 清单文件需要配置一些权限,可以先运行代码,报什么错误就配置什么权限即可android.provider.Settings.Secure.LOCATION_MODE_OFF 关闭GPS
android.provider.Settings.Secure.LOCATION_MODE_HIGH_ACCURACY 高精度定位
其它两个不解释了