Unit testet Android und Berechtigungen

8

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?

    
user1453173 13.06.2012, 08:55
quelle

1 Antwort

5

Gibt es eine Möglichkeit, nur für die Tests Berechtigungen zu vergeben?

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.

    
yorkw 13.06.2012, 09:33
quelle