我想将此权限添加到我的Android清单中:
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
但是在我的清单中粘贴此权限后,它会测试红色下划线并说:
权限仅授予系统应用
我该怎么办?
答案 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 15022和Issue 14789
答案 2 :(得分:4)
当您更改清单时,此错误会出现在SDK 19及更高版本中。 做项目清洁和建设。 它应该清除这个错误。
答案 3 :(得分:2)
只需清理你的项目就可以了:
项目&gt;清洁...
答案 4 :(得分:1)
因为这是系统级权限设备开发人员不授予此权限,所以应用程序开发工具也会对此发出警告,因此您必须
简单清洁项目&amp;重建这是它
答案 5 :(得分:0)
从
列表中查找ProtectedPermissionWindow -> Preferences -> Android -> Lint Error Checking.
并将严重性设置为错误以外的其他内容(例如info)。这样你的项目仍然可以编译。
答案 6 :(得分:0)
有四种类型的权限
Regular
Dangerous
Signed
Signed or System
The first two can be used by Simple Apps
其他两个只能由构建在框架中的应用程序