当前位置:首页 > 开发 > 移动开发 > 正文

Android 应用程序开关GPS

发表于: 2015-06-25   作者:gqdy365   来源:转载   浏览:
摘要: 要在应用程序中操作GPS开关需要权限: <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> 但在配置文件中添加此权限之后会报错,无法再eclipse里面正常编译,怎么办? 1、方法一:将项目放到Android源码中编译; 2、方法二:网上有人说cl
要在应用程序中操作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);
	}

Android 应用程序开关GPS

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
用于C U I 应用程序的链接程序开关是/ S U B S Y S T E M : C O N D O L E ,而用于G U I 应用程序
版本:1.0 日期:2014.5.17 2014.6.1 版权:© 2014 kince 转载注明出处 在介绍SwitchButton之前,先
GPS简介 GPS是英文Global Positioning System(全球定位系统)的简称。GPS是20世纪70年代由美国陆海
GPS简介 GPS是英文Global Positioning System(全球定位系统)的简称。GPS是20世纪70年代由美国陆海
在android系统提供两种定位方式,NETWORK和GPS。 NETWORK在移动网络中获取位置,精度较低但速度很快
第一步:API Key获取 如果你要嵌入google map在你自己的app里面,就必须要api key,当然,如果你不嵌
<img alt="Android GPS架构分析 _第1张图片" src="http://img.it610.com/image/info5/7e0351a6f9
1、首先允许GPS操作权限 在AndroidManifest.xml 中加入代码: <uses-permission android:name="a
1.效果 iphone上有开关控件,很漂亮,其实android4.0以后也有switch控件,但是只能用在4.0以后的系
1.效果 iphone上有开关控件,很漂亮,其实android4.0以后也有switch控件,但是只能用在4.0以后的系
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号