我想在我的Android清单中添加这个权限:
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
但是当我将这个权限复制到我的清单文件中后,它出现了红色下划线并显示:
该权限仅授予系统应用程序
我该怎么办?
我想在我的Android清单中添加这个权限:
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
但是当我将这个权限复制到我的清单文件中后,它出现了红色下划线并显示:
该权限仅授予系统应用程序
我该怎么办?
MODIFY_PHONE_STATE
权限仅授予系统应用程序。
就您的信息而言,有两种类型的Android应用程序:系统和用户。
用户应用程序 就是所有在Google Play商店、Amazon应用商店或侧载安装的普通应用程序。这些应用程序存储在Android手机的/data分区中,即用于存储用户数据和应用程序的内部存储器的一部分。
系统应用程序 基本上是随ROM预先安装的应用程序。在标准的Android用户环境中,用户无法写入/system分区,因此,直接安装或卸载系统应用程序是不可能的。
为了将应用程序安装为Android设备上的系统应用程序,您的设备必须要么已经rooted,要么已经安装了自定义恢复(或两者都有)。
话虽如此,该错误实际上是错误的,因为您具有有效的代码,编译应该可以正常工作。最好改为发出警告。在Eclipse中,您可以轻松解决此问题。只需按照以下步骤操作:
Window -> Preferences -> Android -> Lint Error Checking。
从列表中找到ProtectedPermission
,并将其严重性设置为错误之外的其他级别(例如信息)。这样,您的项目仍然可以编译。
MODIFY_PHONE_STATE
是一个仅限系统使用的权限。系统应用程序要么预先安装到系统文件夹中,要么由制造商使用他们的安全证书编译。在SDK 19及以上版本中,当您更改清单时会出现此错误。 进行项目清理和构建。 这应该可以清除此错误。
Regular
Dangerous
Signed
Signed or System
前两个可以被简单应用程序使用
另外两个只能被框架内构建的应用程序使用
从列表中查找ProtectedPermission
Window -> Preferences -> Android -> Lint Error Checking.
并将严重性级别设置为除了错误之外的其他级别(例如信息)。这样,您的项目仍将编译。