No permission to write APN settings: Neither user *** nor current process has android.permission.WRI
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了No permission to write APN settings: Neither user *** nor current process has android.permission.WRI相关的知识,希望对你有一定的参考价值。
在ICS40以前的版本中,如果程序需要设置APN,只需要在androidManifest文件中声明这个权限即可。在40的机器上运行则会抛出以下异常:java.lang.SecurityException: No permission to write APN settings: Neither user *** nor current process has android.permission.WRITE_APN_SETTINGS.
原因是google基于安全性考虑屏蔽了第三方应用对于APN的访问权限,网上有人说把程序设为系统app即可。通过adb push命令将apk放到/system/app/目录下确实可行,但是大多数app都是作为第三方应用,这样的可行性不大。因此利用系统签名来使app具有APN访问权限。
第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:
第二个方法麻烦点,不过不用开虚拟机跑到源码环境下用make来编译:
工具和密钥下载地址:http://download.csdn.net/detail/bulkin/4329253
1、你是不是用到获取APN 的信息(如果用到而且是非必须的则可以删除)
2、如果必须要用的APN的信息,则要注意版本兼容性问题,,在android4.2以上版本获取apn 的URI发生了变化。
你代码里是否调用了查询apn 的操作 如采用了4.1 以下版本: Uri PREFERRED_APN_URI = Uri .parse("content://telephony/carriers/preferapn"); ContentResolver contentResolver = context.getContentResolver(); Cursor cursor = contentResolver.query(PREFERRED_APN_URI, null, null, null, null); 4.2以上版本把这段删除掉或者替换成4.2以上版本支持的 这儿要判断一下版本 <a target=_blank target="_blank" href="" rel="nofollow" style="color: rgb(45, 100, 179); text-decoration: none;"></a> 我是直接去掉了的因为这块对我来说不是很重要只是一个给用户提示是什么网络而已!以上是关于No permission to write APN settings: Neither user *** nor current process has android.permission.WRI的主要内容,如果未能解决你的问题,请参考以下文章
使用GAPID报错Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
使用GAPID报错Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
已解决Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
matlabError using save Unable to write file pqfile.mat: permission denied.解决
The current user does not have write permissions to the target environment.
EnvironmentNotWritableError: The current user does not have write permissions to the targe...