只有系统应用程序才能在Manifest中授予权限

我想将这个权限添加到我的Android清单:

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

但是,当我将这个权限粘贴到我的清单中之后,它会testing红色下划线,并说:

权限只被授予系统应用程序

我能做什么?

Solutions Collecting From Web of "只有系统应用程序才能在Manifest中授予权限"

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

有关您的信息,有两种types的Android应用程序:系统和用户

用户应用程序只是您通过Google Play商店,Amazon Appstore或sideloading正常安装的应用程序。 这些进入你的Android手机的/数据分区,这是用户数据和应用程序的内部存储器的一部分。

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

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

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

窗口 – >首选项 – > Android – > Lint错误检查。

从列表中findProtectedPermission并将严重性设置为错误以外的内容(例如info)。 这样你的项目仍然会编译。

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

因此,如果您正在尝试执行此操作,则正尝试使用不再受支持的API。 随着Android版本2.3以上,你可以监控来电,但阻止是不允许的(我认为从你发布的链接你试图做什么)。

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

当您更改清单时,此错误出现在SDK 19之后。 做项目清理和生成。 它应该清除这个错误。

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

项目>清洁…

因为这是系统级权限设备开发人员不授予这个应用程序开发工具也提醒这个,所以你只需要点击项目和清理该项目

从列表中findProtectedPermission

 Window -> Preferences -> Android -> Lint Error Checking. 

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

有四种types的权限

 Regular Dangerous Signed Signed or System 

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