Android(安卓)应用程序开关GPS
16lz
2022-08-06
要在应用程序中操作GPS开关需要权限:
但在配置文件中添加此权限之后会报错,无法再eclipse里面正常编译,怎么办?
1、方法一:将项目放到Android源码中编译;
2、方法二:网上有人说clean一下,果然有效果;
正常编译之后安装,添加权限了也报错,无法正常运行。
研究之后发现还需要System共享权限,就是:
要用这个共享是有要求的:
1、用系统签名;
2、安装到System/app目录下;
这样看来,普通应用程序是没办法在正常方式下操作GPS开关的,这也符合Android设计时的安全考虑。如果需要在定制APP中操作开关,有2个方法:
1、修改系统,提供给APP操作接口;
2、按上面流程操作;
下面贴一下GPS操作的方法:
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
但在配置文件中添加此权限之后会报错,无法再eclipse里面正常编译,怎么办?
1、方法一:将项目放到Android源码中编译;
2、方法二:网上有人说clean一下,果然有效果;
正常编译之后安装,添加权限了也报错,无法正常运行。
研究之后发现还需要System共享权限,就是:
android:sharedUserId="android.uid.system"
要用这个共享是有要求的:
1、用系统签名;
2、安装到System/app目录下;
这样看来,普通应用程序是没办法在正常方式下操作GPS开关的,这也符合Android设计时的安全考虑。如果需要在定制APP中操作开关,有2个方法:
1、修改系统,提供给APP操作接口;
2、按上面流程操作;
下面贴一下GPS操作的方法:
public static boolean getGpsState(Context context) {ContentResolver resolver = context.getContentResolver();return Settings.Secure.isLocationProviderEnabled(resolver,LocationManager.GPS_PROVIDER);}public static void toggleGps(Context context) {ContentResolver resolver = context.getContentResolver();boolean enabled = getGpsState(context);Settings.Secure.setLocationProviderEnabled(resolver,LocationManager.GPS_PROVIDER, !enabled);}public static boolean getGpsState(Context context) {LocationManager locMgr = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);return locMgr.isProviderEnabled(LocationManager.GPS_PROVIDER);}public static void toggleGps(Context context) {ContentResolver resolver = context.getContentResolver();boolean enabled = getGpsState(context);//Settings.Secure.putInt(resolver, LocationManager.GPS_PROVIDER, enabled?0:1);String value = LocationManager.PROVIDERS_CHANGED_ACTION;if (enabled) {value = "-" + LocationManager.GPS_PROVIDER;} else {value = "+" + LocationManager.GPS_PROVIDER;}Settings.Secure.putString(resolver, Settings.Secure.LOCATION_PROVIDERS_ALLOWED, value);}
更多相关文章
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用
- python list.sort()根据多个关键字排序的方法实现
- android上一些方法的区别和用法的注意事项
- android实现字体闪烁动画的方法
- Android中dispatchDraw分析
- Android四大基本组件介绍与生命周期
- Android(安卓)MediaPlayer 常用方法介绍
- 在Fragment中设置控件点击方法,执行失败。