Ich muss eine Robotium-Anwendung erstellen, die die Settings-Anwendung verwendet, um WIFi über das Menü Einstellungen- & gt; Wireless & amp; Netzwerke- & gt; Wi-Fi. Ich habe hier hier einen Beispielcode gefunden, der zeigt, wie man eine Anwendung nur mit einer apk-Datei startet. Das Problem ist, dass meine Robotium-Anwendung dieselbe Signatur mit der (System-) Einstellungen-Anwendung haben sollte. Beim Versuch, eine Anwendung auszuführen, erhalte ich die Fehlermeldung:
Testlauf fehlgeschlagen: Berechtigungsverweigerung: Start Instrumentierung Komponenteinfo {com.jayway.test / android.test.InstrumentationTestRunner} ab pid = 354, uid = 354 nicht erlaubt weil Paket com.jayway.test tut habe keine Signatur, die dem entspricht Ziel com.android.settings
Ich hatte das gleiche Problem. Es gibt einige Berechtigungen, die nur System-Apps haben dürfen. Ich habe versucht, auf die
adb shell dumpsys
Befehle von meiner Anwendung mit den Berechtigungen android.permission.DUMP
.
Die Lösung dafür ist ...
Fügen Sie in der Android-Manifestdatei Ihres Projekts die folgende Zeile im Manifest-Tag hinzu
%Vor%Sie müssen zwei Signaturschlüssel im Code haben, der zum Erstellen der Binärdatei verwendet wird.
platform.x509.pem
platform.pk8
das ist in
vorhandenAndroid / Build / Ziel / Produkt / Sicherheit
Laden Sie ein Tool aus dem Internet herunter, d. h.
signapk.jar
Von der Eclipse exportieren Sie Ihre unsignierte apk. mit der rechten Maustaste auf das Projekt von den Android-Tools. Behalten Sie alle Dinge, z. B. Schlüssel, unsignierte APK und signapk.jar in einem Ordner. Führen Sie den folgenden Befehl aus
%Vor%unsigned apk ist der Name Ihrer apk und signierte apk ist der neue Name, den Sie wollen. Danach installieren Sie Ihre signierte App einfach mit dem Befehl
im Telefon %Vor%Der beste Weg, WLAN von Ihrer Anwendung aus zu aktivieren, wäre die Verwendung des WLAN-Managers .
%Vor%Hinweis: Sie müssen dem Manifest auch die folgenden Berechtigungen hinzufügen
%Vor%Tags und Links android