26

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

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

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

权限仅授予系统应用程序

我能做些什么?

4

7 回答 7

65

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

供您参考,有 2 种类型的 Android 应用程序:系统和用户

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

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

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

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

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

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

于 2013-01-15T09:02:30.983 回答
6

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

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

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

于 2012-11-28T03:22:39.363 回答
4

当您更改清单时,此错误会出现在 SDK 19 及更高版本中。进行项目清理和构建。它应该清除此错误。

于 2014-02-08T00:21:07.230 回答
2

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

项目 > 清洁...

于 2014-03-31T12:32:07.160 回答
1

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

简单地清理项目并重建就是这样

于 2014-06-04T11:02:42.670 回答
1

有四种类型的权限

Regular
Dangerous
Signed
Signed or System

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

于 2015-10-27T08:27:45.353 回答
0

从列表中找到 ProtectedPermission

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

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

于 2015-03-13T12:53:59.253 回答