权限仅授予Manifest中的系统应用程序

Rez*_*_Rg 25 permissions android android-manifest

我想将此权限添加到我的Android清单中:

<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
Run Code Online (Sandbox Code Playgroud)

但是在我将此权限粘贴到我的清单后,它会测试红色下划线并说:

权限仅授予系统应用程序

我能做什么?

Can*_*ner 65

MODIFY_PHONE_STATE 权限仅授予系统应用程序.

有关您的信息,有两种类型的Android应用:系统和用户

用户应用程序只是通过Google Play商店,Amazon Appstore或侧载功能安装的常规应用程序.这些进入Android手机的/ data分区,这是内部存储器的一部分,可用于用户数据和应用程序.

系统应用程序基本上是预先安装了ROM的应用程序.在标准的Android用户环境中,用户没有对/ system分区的写入权限,因此无法直接安装或卸载系统应用程序.

要在Android设备上将应用程序安装为系统应用程序, 您的设备必须已植根或已安装自定义恢复(或两者都有).

话虽这么说,该错误实际上是错误的,因为你有一个有效的代码和编译应该工作.如果它发出警告会更好.在Eclipse中,您可以轻松修复它.只是去:

窗口 - >首选项 - > Android - > Lint错误检查.

ProtectedPermission从列表中查找并将严重性设置为错误以外的其他内容(例如信息).这样你的项目仍然可以编译.


gsb*_*gsb 6

MODIFY_PHONE_STATE是一个仅限系统的权限.系统应用程序预先安装到系统文件夹中,或由制造商使用其安全证书进行编译.

因此,如果您尝试这样做,则尝试使用不再受支持的API.使用Android版本2.3+,您可以监控来电,但不允许阻止(我想你发布的链接就是你要做的事情).

如果您需要遵循Android问题:问题15022问题14789