Ich brauche android.permission.WRITE_SETTINGS für die Junit-Tests meiner Android-Anwendung. Ich verwende IntelliJ Idea 11.1.2 und die Komponententests in einem eigenen Modul, das die zweite AndroidManifest.xml für die Tests enthält.
Ich habe <uses-permission android:name="android.permission.WRITE_SETTINGS" />
zur AndroidManifest.xml des Testmoduls hinzugefügt.
Fehler: java.lang.SecurityException: Permission Denial: writing com.android.providers.settings.SettingsProvider uri content://settings/system from pid=1063, uid=10035 requires android.permission.WRITE_SETTINGS
Hässliche Schnellkorrektur: Ich füge die gleiche Berechtigung auch der AndroidManifest.xml der Anwendung hinzu. Tests werden ohne einen einzigen Fehler ausgeführt.
Das Problem: Ich möchte NICHT der gesamten Anwendung erlauben, Einstellungen zu ändern.
Gibt es eine Möglichkeit, nur für die Tests Berechtigungen zu erteilen?
Kurze Antwort ist nein.
Ihr Android-Testprojekt und Ihr Android-Anwendungsprojekt sind eigentlich zwei Anwendungen mit test.apk-Instrumenten, app.apk und Laufzeit. & lt; uses-permission & gt; ist pro Anwendung, hinzugefügt es AndroidManifest.xml des Testprojekts gibt nur die erforderliche Berechtigung für test.apk, nicht die Anwendung im Test, also app.apk.
Tags und Links android unit-testing permissions android-testing