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

时间:2012-11-28 03:07:10

标签: android permissions android-manifest

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

<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />

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

  

权限仅授予系统应用

我该怎么办?

7 个答案:

答案 0 :(得分:64)

MODIFY_PHONE_STATE权限仅授予系统应用。

有关您的信息,有两种类型的Android应用程序:system&amp;用户

  

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

     

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

     

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

话虽如此,该错误实际上是错误的,因为您有一个有效的代码并且编译应该有效。如果它发出警告会更好。在Eclipse中,您可以轻松修复它。请转到:

  

窗口 - &gt;偏好 - &gt; Android - &gt; Lint错误检查。

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

答案 1 :(得分:6)

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

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

Android问题,如果您需要关注:Issue 15022Issue 14789

答案 2 :(得分:4)

当您更改清单时,此错误会出现在SDK 19及更高版本中。 做项目清洁和建设。 它应该清除这个错误。

答案 3 :(得分:2)

只需清理你的项目就可以了:

项目&gt;清洁...

答案 4 :(得分:1)

因为这是系统级权限设备开发人员不授予此权限,所以应用程序开发工具也会对此发出警告,因此您必须

  

简单清洁项目&amp;重建这是它

答案 5 :(得分:0)

列表中查找ProtectedPermission
Window -> Preferences -> Android -> Lint Error Checking.

并将严重性设置为错误以外的其他内容(例如info)。这样你的项目仍然可以编译。

答案 6 :(得分:0)

有四种类型的权限

Regular
Dangerous
Signed
Signed or System

The first two can be used by Simple Apps其他两个只能由构建在框架中的应用程序

使用