我想将此权限添加到我的 Android 清单中:
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
但是在我将此权限粘贴到清单中后,它会测试红色下划线并显示:
权限仅授予系统应用程序
我能做些什么?
我想将此权限添加到我的 Android 清单中:
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
但是在我将此权限粘贴到清单中后,它会测试红色下划线并显示:
权限仅授予系统应用程序
我能做些什么?
MODIFY_PHONE_STATE
权限仅授予系统应用程序。
供您参考,有 2 种类型的 Android 应用程序:系统和用户
用户应用程序只是您通过 Google Play 商店、亚马逊应用程序商店或侧载安装的所有正常应用程序。这些进入您的 Android 手机的 /data 分区,这是可用于用户数据和应用程序的内部存储器的一部分。
系统应用程序基本上是预装在您的 ROM 中的应用程序。在标准的 Android 用户环境中,用户没有对 /system 分区的写入权限,因此无法直接安装或卸载系统应用程序。
为了在您的 Android 设备上安装应用程序作为系统应用程序, 您的设备必须是 root 或安装了自定义恢复(或两者)。
话虽如此,该错误实际上是错误的,因为您有有效的代码并且编译应该可以工作。如果它发出警告会更好。在 Eclipse 中,您可以轻松修复它。只需前往:
窗口 -> 首选项 -> Android -> Lint 错误检查。
从列表中查找ProtectedPermission
并将严重性设置为错误以外的内容(例如信息)。这样你的项目仍然可以编译。
MODIFY_PHONE_STATE
是系统权限。系统应用程序要么预先安装到系统文件夹中,要么由制造商使用其安全证书编译。
因此,如果您尝试这样做,您就是在尝试使用不再受支持的 API。使用 Android 2.3+ 版本,您可以监控来电,但不允许阻止(我认为您发布的链接就是您想要做的)。
如果您需要关注 Android 问题:Issue 15022和Issue 14789
当您更改清单时,此错误会出现在 SDK 19 及更高版本中。进行项目清理和构建。它应该清除此错误。
只需清理您的项目就可以了:
项目 > 清洁...
因为这是系统级权限设备开发人员不授予此权限,所以应用程序开发工具也会对此发出警告,因此您必须
简单地清理项目并重建就是这样
有四种类型的权限
Regular
Dangerous
Signed
Signed or System
The first two can be used by Simple Apps
其他两个只能由构建在框架中的应用程序使用
从列表中找到 ProtectedPermission
Window -> Preferences -> Android -> Lint Error Checking.
并将严重性设置为错误以外的其他内容(例如信息)。这样你的项目仍然可以编译。