Ich baue eine winzige Dummy-App über die Befehlszeile (kein Gradle) mit nur einer leeren Aktivität, keine Berechtigungen, keine Support-Bibliotheken (oder andere Bibliotheken, Google Play, usw.) und doch fordert Android immer diese beiden auf während der Installation Berechtigungen:Warum werden während der Installation immer zwei Berechtigungen angefordert?
ich verstehe, wie und warum Berechtigungen zusammen erhalten in, wenn andere Bibliotheken während eines Build enthalten sind, aber meine app hat nichts enthalten. Ich habe die kompilierte AndroidManifest.xml aus der resultierenden APK extrahiert und entschlüsselt und es gibt keinen <uses-permission>
Tag irgendwo innerhalb davon.
Laut this question wird der READ_PHONE_STATE hinzugefügt, wenn kein Wert minSdkVersion
eingegeben wird, aber ich habe einen im Manifest deklariert (was ich auch im kompilierten Manifest sehen kann). Hier ist die Quelle manifestieren:
<?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>
Die einzige Aktivität (MainActivity) nur Anrufe setContentView()
auf ein leeres Layout.
Kann irgendjemand ein Licht darauf werfen, warum diese Berechtigungen immer angefordert werden oder wie verhindert werden kann, dass sie dazu aufgefordert werden?
Haben Sie auch die Gradle-Datei überprüft? – fillobotto
@fillobotto no gradle (wie in der ersten Zeile erwähnt) - Die App wird durch Ausführen der Android SDK-Befehlszeilentools kompiliert. – adelphus
"Die App wird kompiliert, indem die Android SDK-Befehlszeilentools ausgeführt werden" - dies schließt die Verwendung von Gradle nicht aus. In der Tat, wenn Sie Gradle * nicht * benutzen, könnte das ein Teil Ihres Problems sein. Frühere Befehlszeilenansätze (z. B. Ant) werden nicht mehr unterstützt. – CommonsWare