Как удалить ненужные разрешения в Android? - PullRequest
2 голосов
/ 01 августа 2011

Некоторые дополнительные разрешения, не закодированные в Manifest, отображаются при установке моего приложения на реальном устройстве, например, я закодировал:

<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />

При установке я вижу также Storage (Изменить / удалить содержимое USB-накопителя).) и разрешений для телефонных звонков (чтение статуса и идентификатора телефона).

(Действия не используют никаких дополнительных разрешений.)

Я хотел бы знать, как их можно удалить.

1 Ответ

3 голосов
/ 01 августа 2011

Журнал изменений Android 1.6: http://developer.android.com/sdk/android-1.6.html#api

WRITE_EXTERNAL_STORAGE : позволяет приложению выполнять запись во внешнее хранилище. Приложениям, использующим API уровня 3 и ниже, будет неявно предоставлено это разрешение (и это будет видно пользователю) ;Приложения, использующие API уровня 4 или выше, должны явно запрашивать это разрешение.

Но это только один из них.По какой-то причине в официальном журнале изменений отсутствует информация о READ_PHONE_STATE.Полная история проясняется здесь: http://blogs.zdnet.com/Burnette/?p=1369&page=3

Новые разрешения.Программы 1.6 должны явно запросить разрешение WRITE_EXTERNAL_STORAGE , чтобы иметь возможность изменять содержимое SD-карты, и они должны явно запросить разрешение READ_PHONE_STATE , чтобы иметь возможность получить состояние телефонаИнформация. Приложения, нацеленные на более ранние версии, всегда будут запрашивать эти разрешения неявно.

Таким образом, как вы можете видеть, нет способа опубликовать приложение, ориентированное на 1,5 илиранее, не запрашивая эти разрешения при установке на телефонах с версией 1.6 или выше.

Цитирование из Разрешения Android: телефонные звонки: чтение состояния телефона и идентификация

...