Дозвіл надається лише системному додатку


98

У мене є системний додаток, який використовує системні дозволи, і я маю ці дозволи, перелічені в маніфесті. Eclipse видає таку помилку, коли я намагаюся зробити збірку (збірка командного рядка працює):

Дозвіл надається лише системним додаткам

Я вже знаю, що мій додаток вимагає системних дозволів, і це не є проблемою для мене, оскільки моя програма буде використовуватися лише на вкорінених телефонах. Тож я хочу придушити цю помилку, хтось знає як?

EDIT
Мій проект вже добре поєднується в командному рядку, встановлює, запускає і т.д.



@AndroSelva це не пов’язано, мій проект вже добре компілює в командному рядку, встановлює, запускає і т.д. ІМО в цьому випадку має видавати лише попередження.
Канер

Відповіді:


205

В Eclipse:

Вікно -> Налаштування -> Android -> Перевірка помилок Lint.

У списку знайдіть запис з ID = ProtectedPermission. Встановіть серйозність на щось нижче, ніж помилка. Таким чином ви все ще можете скласти проект за допомогою Eclipse.

В Android Studio:

Файл -> Установки -> Редактор -> Огляди

Під Android Lintзнайдіть Using system app permission. Або зніміть прапорець або встановіть серйозність, меншу за помилку.


1
Дякую! В Android Studio 1.2 я знайшов це в меню Файл -> Налаштування -> Редактор -> Перевірки.
Аарон

Я хочу змінити яскравість екрану програмно. Я відредагував Lint у налаштуваннях. Але це кидає деякий виняток безпеки, намагаючись програмно змінити яскравість екрана. Будь-хто може вирішити цю функцію в Android 3.1 вище Marshmallow, поділіться.
Nithinjith

3
В Android Studio 2.1 перейдіть до Файл -> Налаштування -> Редактор -> Перевірки, а потім розгорніть Android> Lint> Правильність. Виберіть "Використання дозволу на системну програму", змініть суворість або зніміть прапорець.
Єзекіїль Баняга

2
Це було Android > Lint > Correctnessдля мене.
Бейондо,

74

Щоб ігнорувати цю помилку лише для одного примірника, додайте tools:ignore="ProtectedPermissions"атрибут до вашої декларації дозволу. Ось приклад:

<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"
    tools:ignore="ProtectedPermissions" />

Ви повинні додати toolsпростір імен в кореневий елемент маніфесту

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

3
Це правильна відповідь. Навіщо відключати всю перевірку, коли вона потрібна лише частково. Дякую вам сер!
Йорако Гонсалес

Вам потрібно буде додати простір імен ... xmlns: tools = " schemas.android.com/tools "
purplecabbage

13

Час від часу виникають однакові помилки (коли я встановлюю місце встановлення на "віддавати перевагу зовнішньому" в маніфесті). Просто почистіть і відновіть проект. Працює для мене.


3

коли ви додаєте дозвіл у маніфесті, то в затемненні перейдіть до проекту та натисніть

  1. натисніть на проект
  2. натисніть на чистий проект, і все

k на чистому проекті



1

Налаштування -> EditorEditor -> Перевірки -> Android Lint -> зніміть прапорець За допомогою дозволу системної програми


1

Шлях в Android Studio в Mac:

Android Studio -> Налаштування -> Редактор -> Перевірки

Розгорніть Android -> Розгорніть шрифт -> Розгорніть правильність

Зніміть прапорець біля Використання дозволу системної програми

Клацніть "ЗАЯВИТИ" -> "ОК"

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.