web-dev-qa-db-fra.com

Refus de permission: cela nécessite Android.permission.INTERACT_ACROSS_USERS_FULL

J'ai un problème avec sqlite db sous Android. Mais comme j'ai fait une recherche rapide sur Internet, je soupçonne que le problème n'est pas lié à SQLite mais à l'utilisateur du système. Mon application n'est pas reconnue en tant qu'utilisateur autorisé à accéder aux fonctionnalités de la base de données. J'ai essayé d'appliquer les solutions possibles suggérées dans le débordement de pile, mais aucune d'entre elles n'a fait de différence. C'est le LogCat auquel je suis confronté chaque fois que j'essaie d'utiliser les fonctionnalités de la base de données. 

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)

J'ai essayé d'ajouter une permission

Android.permission.INTERACT_ACROSS_USERS_FULL

mais toujours pas de son. La chose étrange est que lorsque j'essaie d'ajouter une autorisation INTERNET, Android Studio 0.3 (que j'utilise) me suggère des autorisations possibles que je peux choisir. Mais lorsqu'il s'agit de l'autorisation INTERACT_ACROSS_USERS_FULL, elle se comporte comme si elle n'avait aucune idée de cette autorisation. Mon appareil de test est Samsung S4 sous 4.3.

Je suppose que je ne suis pas le seul à essayer d'utiliser la base de données sur Android. Donc, il y a une solution. 

Comment puis-je réellement ajouter l'autorisation INTERACT_ACROSS_USERS_FULL à mon application?

34
gurkan

Selon cette réponse: Android.permission.INTERACT_ACROSS_USERS_FULL est une permission au niveau de la signature. Votre application ne pourra pas l'utiliser tant qu'elle n'aura pas la même signature que le système.

Ce que vous ne pouvez réaliser que si vous êtes soit le créateur, soit le système construit, ou si vous collaborez avec eux de manière à ce qu'ils acceptent de signer votre apk avec leur certificat. En d'autres termes, ceci est interdit pour la plupart des développeurs.

19
SamSPICA

J'ai eu l'erreur Android.permission.INTERACT_ACROSS_USERS_FULL parce que j'avais des conflits dans le répertoire bin du projet. J'ai apporté quelques modifications à l'ID de mon package d'application et le fichier app-file-1.apk du répertoire bin ne correspond pas au projet.

J'ai fait un projet> nettoyer et vérifié que le dossier bin était effacé et régénéré , et cela fonctionne maintenant.

4
Pelanes

Je reçois cette erreur lorsque je modifie ma minSdkVersion de 8 à 11 dans mon manifeste. Je l'ai changé de nouveau à 8 ou 9 et plus d'erreur.

Essayez de changer votre minSdkVersion dans votre manifeste. J'ai été en mesure de répéter les résultats des incidents et des erreurs avec les versions 10, 11 et 12 (mon application se bloque et affiche "requiert Android.permission.INTERACT_ACROSS_USERS_FULL" dans LogCat)

0
user3542309

Essayez de désactiver le remplissage automatique. Cela fonctionne à 100% sur Android Oreo. Cochez cette link

Ajoutez simplement ce code à votre application:

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

J'ai eu le même problème et je pense pouvoir vous aider. J'avais enregistré mon application avec mon magasin de clés de production, mais j'utilisais le débogage Eclipse pour le charger dans mon téléphone. Le débogage Eclipse utilise le fichier debug.keystore qui ne correspond pas à la signature de votre clé de production et génère cette erreur. Utilisez plutôt le magasin de clés de débogage pour tester ou envoyez-vous l'apk et téléchargez-le sur votre téléphone.

0
HarshMarshmallow