查看了Settings源代码,发现其开启关闭GPS的代码如下:
/**
* Gets the state of GPS location.
*
* @param context
* @return true if enabled.
*/
private static boolean getGpsState(Context context) {
ContentResolver resolver = context.getContentResolver();
boolean open = Settings.Secure.isLocationProviderEnabled(resolver, LocationManager.GPS_PROVIDER);
System.out.println("getGpsState:"+open);
return open;
}
/**
* Toggles the state of GPS.
*
* @param context
*/
private void toggleGps(Context context) {
ContentResolver resolver = context.getContentResolver();
boolean enabled = getGpsState(context);
Settings.Secure.setLocationProviderEnabled(resolver, LocationManager.GPS_PROVIDER,
!enabled);
}
以上代码在Eclisp有错误,在Linux下编译,可以通过,安装APK后运行,有需要如下权限的提示:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
即使在AndroidManifest.xml中声明了权限,也还是有这个错误提示。
解决方法:
在 AndroidManifest.xml中添加系统权限: android:sharedUserId="android.uid.system"
例如:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:sharedUserId="android.uid.system"
>
在Linux下编译,就可以了
本文转自http://www.eoeandroid.com/forum-viewthread-tid-52190-highlight-gps.html
/**
* Gets the state of GPS location.
*
* @param context
* @return true if enabled.
*/
private static boolean getGpsState(Context context) {
ContentResolver resolver = context.getContentResolver();
boolean open = Settings.Secure.isLocationProviderEnabled(resolver, LocationManager.GPS_PROVIDER);
System.out.println("getGpsState:"+open);
return open;
}
/**
* Toggles the state of GPS.
*
* @param context
*/
private void toggleGps(Context context) {
ContentResolver resolver = context.getContentResolver();
boolean enabled = getGpsState(context);
Settings.Secure.setLocationProviderEnabled(resolver, LocationManager.GPS_PROVIDER,
!enabled);
}
以上代码在Eclisp有错误,在Linux下编译,可以通过,安装APK后运行,有需要如下权限的提示:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
即使在AndroidManifest.xml中声明了权限,也还是有这个错误提示。
解决方法:
在 AndroidManifest.xml中添加系统权限: android:sharedUserId="android.uid.system"
例如:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:sharedUserId="android.uid.system"
>
在Linux下编译,就可以了
本文转自http://www.eoeandroid.com/forum-viewthread-tid-52190-highlight-gps.html