Я создаю крошечное фиктивное приложение, используя командную строку (без градиента) только с одним пустым действием, без разрешений, без библиотек поддержки (или с любыми другими библиотеками, в Google Play и т. Д.), И все же Android всегда запрашивает эти два разрешения во время установки:Почему во время установки всегда запрашиваются два разрешения?
Я понимаю, как и почему разрешения сольются в том, когда другие библиотеки включены во время сборки, но мое приложение не имеет ничего включено. Я извлек и расшифровал скомпилированный файл AndroidManifest.xml из полученного APK, и в нем нет тега <uses-permission>
.
Согласно this question, добавляется READ_PHONE_STATE, если значение minSdkVersion
введено, но в манифесте я объявлен (что я также вижу в скомпилированном манифесте). Вот источник манифеста:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="dummy.testapp"
versionCode="1">
<uses-sdk minSdkVersion="20" targetSdkVersion="22" />
<application
android:label="TestApp No Perms"
android:icon="@drawable/ic_launcher">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Сингл активность (MainActivity) просто вызывает setContentView()
на пустой макет.
Может ли кто-нибудь пролить свет на вопрос, почему эти разрешения всегда запрашиваются или как их не запрашивать?
Вы также проверили файл Gradle? – fillobotto
@fillobotto no gradle (как упоминалось в первой строке) - приложение скомпилировано с помощью инструментов командной строки Android SDK. – adelphus
«приложение скомпилировано с помощью инструментов командной строки Android SDK» - это не исключает использования Gradle. На самом деле, если вы * не * используете Gradle, это может быть частью вашей проблемы. Предыдущие подходы командной строки (например, Ant) больше не поддерживаются. – CommonsWare