Разрешение предоставляется только системному приложению в Манифесте
Я хочу добавить это разрешение в мой манифест Android:
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
Но после того, как я вставил это разрешение в мой манифест, он проверяет красное подчеркивание и говорит:
разрешение предоставляется только системным приложениям
Что я могу сделать?
7 ответов
MODIFY_PHONE_STATE
разрешение предоставляется только системным приложениям.
К вашему сведению, существует 2 типа приложений для Android: система и пользователь
Пользовательские приложения - это просто все ваши обычные установки приложений через Google Play Store, Amazon Appstore или стороннюю загрузку. Они попадают в раздел /data вашего телефона Android, который является частью внутренней памяти, доступной для пользовательских данных и приложений.
Системные приложения - это, в основном, приложения, которые предустановлены вместе с вашим ПЗУ. В стандартной пользовательской среде Android у пользователя нет прав на запись в раздел / system, и, следовательно, установка или удаление системных приложений напрямую невозможна.
Чтобы установить приложение в качестве системного приложения на устройстве Android, ваше устройство должно быть либо рутировано, либо должно быть установлено пользовательское восстановление (или оба).
Тем не менее, эта ошибка на самом деле не так, потому что у вас есть правильный код и компиляция должна работать. Было бы лучше, если бы вместо этого он дал предупреждение. В Eclipse вы можете легко это исправить. Просто зайдите на:
Окно -> Настройки -> Android -> Проверка ошибок Lint.
найти ProtectedPermission
из списка и установите серьезность чего-либо, кроме ошибки (информация, например). Таким образом, ваш проект все еще будет компилироваться.
MODIFY_PHONE_STATE
это разрешение только для системы. Системные приложения либо предварительно устанавливаются в системную папку, либо компилируются производителем с использованием сертификата безопасности.
Следовательно, если вы пытаетесь сделать это, вы пытаетесь использовать API, который больше не поддерживается. В версиях Android 2.3+ вы можете отслеживать входящие звонки, но блокировка запрещена (я думаю, что по ссылке, которую вы разместили, вы пытаетесь это сделать).
Проблемы с Android, если вам нужно следовать: выпуск 15022 и выпуск 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.
и установите серьезность чего-либо, кроме ошибки (информация, например). Таким образом, ваш проект все еще будет компилироваться.