it-swarm.com.de

Berechtigungsverweigerung: Dies erfordert Android.permission.INTERACT_ACROSS_USERS_FULL

Ich habe ein Problem mit sqlite db in Android. Ich habe jedoch eine kurze Recherche im Internet durchgeführt und vermute, dass das Problem nicht mit sqlite, sondern mit dem Systembenutzer zusammenhängt. Meine App wird nicht als autorisierter Benutzer für den Zugriff auf die Datenbankfunktionen erkannt. Ich habe versucht, mögliche Lösungsvorschläge im Stapelüberlauf anzuwenden, aber keine davon machte einen Unterschied. Dies ist das LogCat, dem ich jedes Mal gegenüberstehe, wenn ich versuche, die db-Funktionalität zu verwenden. 

12-14 02:35:17.721    2953-3355/? E/DatabaseUtils﹕ Writing exception to parcel
Java.lang.SecurityException: Permission Denial: get/set setting for user asks to run as user -2 but is calling from user 0; this requires Android.permission.INTERACT_ACROSS_USERS_FULL
at com.Android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.Java:13082)
at Android.app.ActivityManager.handleIncomingUser(ActivityManager.Java:2038)
at com.Android.providers.settings.SettingsProvider.callFromPackage(SettingsProvider.Java:577)
at Android.content.ContentProvider$Transport.call(ContentProvider.Java:279)
at Android.content.ContentProviderNative.onTransact(ContentProviderNative.Java:273)
at Android.os.Binder.execTransact(Binder.Java:388)
at dalvik.system.NativeStart.run(Native Method)

Ich habe versucht, die Erlaubnis hinzuzufügen

Android.permission.INTERACT_ACROSS_USERS_FULL

aber immer noch kein Ton. Das Merkwürdige ist, wenn ich versuche, eine INTERNET-Berechtigung hinzuzufügen. Android Studio 0.3 (ich benutze es) schlägt mir mögliche Berechtigungen vor, die ich auswählen kann. Wenn es jedoch um die Berechtigung INTERACT_ACROSS_USERS_FULL geht, verhält es sich so, als hätte es von dieser Berechtigung keine Ahnung. Mein Testgerät ist Samsung S4 auf 4.3.

Ich gehe davon aus, dass ich nicht der einzige bin, der versucht, db auf Android zu verwenden. Es gibt also eine Lösung. 

Wie kann ich meiner Anwendung wirklich die Berechtigung INTERACT_ACROSS_USERS_FULL hinzufügen?

34
gurkan

Gemäß dieser Antwort: Android.permission.INTERACT_ACROSS_USERS_FULL ist eine Berechtigung auf Signaturebene. Ihre App kann sie erst verwenden, wenn sie dieselbe Signatur wie das System hat.

Was Sie nicht erreichen können, es sei denn, Sie sind entweder der Ersteller oder das System, oder Sie arbeiten mit ihnen zusammen, sodass sie bereit sind, Ihre apk mit ihrem Zertifikat zu unterzeichnen. Mit anderen Worten, dies ist für die meisten Entwickler verboten.

19
SamSPICA

Ich habe den Fehler Android.permission.INTERACT_ACROSS_USERS_FULL erhalten, weil ich Konflikte im Verzeichnis bin des Projekts hatte. Ich habe einige Änderungen an der App-Paket-ID vorgenommen, und die App-Datei-1.apk im Verzeichnis bin stimmt nicht mit dem Projekt überein.

Ich habe ein project> clean gemacht und überprüft, ob der bin-Ordner gelöscht und regeneriert wurde und es funktioniert jetzt.

4
Pelanes

Ich erhalte diese Fehlermeldung, wenn ich in meinem Manifest meine minSdkVersion von 8 auf 11 ändere. Ich habe es wieder auf 8 oder 9 geändert und keinen Fehler mehr.

Versuchen Sie, Ihre minSdkVersion in Ihrem Manifest zu ändern. Ich konnte die Absturz- und Fehlerergebnisse mit den Versionen 10, 11 und 12 wiederholen.

0
user3542309

Versuchen Sie, das automatische Ausfüllen zu deaktivieren. Es funktioniert zu 100% auf Android Oreo. Überprüfen Sie diesen Link

Fügen Sie einfach diesen Code zu Ihrer App hinzu:

      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        window.decorView.importantForAutofill = 
        View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS;
    }
0
user7856586

Ich hatte das gleiche Problem und denke, dass ich Ihnen helfen kann. Ich hatte meine App bei meinem Produktions-Keystore registriert, verwendete jedoch Eclipse-Debug, um sie in mein Telefon zu laden. Der Eclipse-Debug verwendet debug.keystore, das nicht mit der Signatur Ihres Produktionsschlüssels übereinstimmt und diesen Fehler ausgibt. Verwenden Sie stattdessen den Debug-Keystore zum Testen oder senden Sie die apk an sich selbst und laden Sie sie auf Ihr Telefon herunter.

0