Déni de Permission: cela nécessite android.autorisation.INTERACT ACROSS USERS FULL

j'ai un problème avec sqlite db sur 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 reconnu comme utilisateur autorisé à accéder db fonctionnalités. J'ai essayé d'appliquer des solutions suggérées possibles dans le débordement de la pile mais aucune d'entre elles n'a fait une différence. C'est le LogCat auquel je fais face chaque fois que je tente d'utiliser la fonctionnalité db.

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 autorisation

android.permission.INTERACT_ACROSS_USERS_FULL

mais toujours pas de son. Ce qui est étrange, c'est que lorsque j'essaie d'ajouter la permission Internet Android Studio 0.3 (ide que j'utilise) me suggère des permissions possibles que je peux choisir. Mais quand il s'agit de la permission INTERACT_ACROSS_USERS_FULL, elle se comporte comme si elle n'avait aucune idée de cette permission. Mon appareil de test est Samsung S4 sur 4.3.

je suppose que je ne suis pas le seul qui essaie d'utiliser db sur android. Donc, il y a une solution.

Comment puis-je vraiment ajouter la permission INTERACT_ACROSS_USERS_FULL à mon application?

34
demandé sur gurkan 2013-12-14 04:57:40

5 réponses

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

ce qui n'est pas quelque chose que vous pouvez accomplir à moins que vous ne soyez le créateur ou la construction du système, ou de collaborer avec eux de sorte qu'ils soient prêts à signer votre apk avec leur certificat. En d'autres termes, c'est hors limite pour la plupart des développeurs.

19
répondu SamSPICA 2017-05-23 12:17:42

j'ai eu l'erreur android.autorisation.INTERACT_ACROSS_USERS_FULL parce que j'ai eu quelques conflits dans le bin directory du projet. J'ai fait quelques changements à mon app id de package et l'application fichier-1.apk dans le répertoire bin ne correspond pas au projet.

j'ai fait un project > clean et vérifié que le dossier de la corbeille était nettoyé et régénéré , et il fonctionne maintenant.

4
répondu Pelanes 2014-09-03 07:18:52

j'ai eu le même problème et pense que je peux vous aider. J'avais enregistré mon application avec mon keystore de production, mais J'utilisais Eclipse debug pour le charger dans mon téléphone. Le débogage Eclipse utilise le débogage.keystore qui ne correspondra pas à la signature de votre clé de production et jeter cette erreur. Utilisez le débogueur keystore à la place pour tester ou envoyer l'apk à vous-même et le télécharger sur votre téléphone.

0
répondu HarshMarshmallow 2014-03-31 15:07:21

j'obtiens cette erreur quand je change ma version de minsd de 8 à 11 dans mon manifeste. Je l'ai changé en 8 ou 9 et plus d'erreur.

essayez de changer votre version de minsd dans votre manifeste. J'ai pu répéter les résultats de crash et d'erreur avec les versions 10, 11 et 12 (mon application crashes and displays "nécessite android.autorisation.INTERACT_ACROSS_USERS_FULL" in the LogCat)

0
répondu user3542309 2014-04-16 17:47:38

essayez de désactiver le remplissage automatique. Il fonctionne à 100% Sur Android Oreo. Cochez cette lien

il suffit D'ajouter ce code à votre application:

      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        window.decorView.importantForAutofill = 
        View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS;
    }
0
répondu user7856586 2018-03-30 11:53:02