web-dev-qa-db-fra.com

Permission Android.INTERACT_ACROSS_USERS_FULL

J'ai une grosse application sous Android.

De temps en temps, l'application se bloque avec une erreur qui n'est pas claire. Je ne sais pas exactement quand et pourquoi cela se produit.

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

De l'aide?

24
offset

Java.lang.SecurityException: refus d'autorisations: définition/définition du paramètre pour l'utilisateur demande à s'exécuter en tant qu'utilisateur -2 mais appelle l'utilisateur 0; cela nécessite Android.permission.INTERACT_ACROSS_USERS_FULL

Ajoutez ce Android:protectionLevel="signature" dans votre manifeste. 

Pour plus de détails, vous pouvez vérifier Permission-Element

Comme:

<permission Android:name="Android.permission.INTERACT_ACROSS_USERS_FULL" Android:protectionLevel="signature"/>
11
IntelliJ Amiya

Le même problème que je rencontrais lorsque j'utilise billingProcessor.subscribe () ou billingProcessor.purchase () avec deux paramètres comme Activité et product_id du produit Il y avait je passe la valeur de product_id est vide

S'il vous plaît assurez-vous une fois que vous transmettez la valeur dans le product_id n'est pas vide.

3
varotariya vajsi

Une des solutions possibles est de désactiver le remplissage automatique, mais cela ne fonctionne que 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;
    }
1
user7856586

C'est une erreur très étrange ... Je l'ai eu après avoir basculé de Java à Kotlin ou peut-être depuis une mise à jour Android Studio. J'ai commencé à commenter les éléments un par un à partir des fichiers XML et .kt jusqu'à ce que l'erreur ne soit en aucun cas liée à un ID utilisateur (mentionné dans l'erreur), ni à aucun appel de modification non plus. élément en XML, rien à ce sujet dans le fichier .kt quand j'ai chargé les éléments, juste ceci: 

<Spinner
        Android:id="@+id/number_people_sp"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:inputType="text" />

Alors je l'ai supprimé et les choses se sont bien passées. Je pense que le problème a été causé par un espacement des éléments (parce que cette spinner était dans un fragment dans une activité à onglets) et je vois dans les longues lignes d'erreur quelque chose à propos de l'espacement et des mesures enfantines.

Pensez simplement à vérifier toute petite chose possible dans le fichier d'erreur, l'erreur pourrait provenir de n'importe quoi ... 

0
Robert Pal

Cela peut vous aider car j'ai le même problème et je peux le résoudre.

Comme Android 28 est soumis à certaines restrictions, tous les développeurs doivent examiner ces modifications et modifier leurs applications pour les prendre en charge correctement, le cas échéant.

https://developer.Android.com/about/versions/pie/Android-9.0-changes-all

Voici mes quelques changements de code 

  1. Android 9 offre de nouvelles fonctionnalités telles que la rotation.Il peut se bloquer lorsque vous le définissez en mode portrait de manière constante dans le fichier manifeste. donc je supprime Android: screenOrientation = "portrait" de manifest.xml

  2. Un autre problème dans mon code est l'enregistrement statique d'une émission

    <intent-filter>
        <action Android:name="Android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
    

    L'action Android.net.conn.CONNECTIVITY_CHANGE est obsolète dans Android P. Je l'enregistre donc dynamiquement dans BaseActivity.Java

    @Override
    protected void onResume() {
    super.onResume();
    registerReceiver(connectReceiver, newIntentFilter("Android.net.conn.CONNECTIVITY_CHANGE"));
       }
    
  3. Je mets à jour toutes les bibliothèques dans build.gradle et supprime les implémentations inutiles 

En conclusion,

  • veuillez d'abord lire la documentation complète sur les changements de comportement sur Android 
  • apporter les modifications nécessaires (Orientation, Diffusion, Service Backgroud, etc.), car elles sont restreintes 

Je vous remercie !

0
Ramesh Pokharel

j'ai résolu ce problème par chance. J'utilisais une instance de fragment singleton qui était à l'origine de ce problème. Quand j'ai remplacé l'appel fragment.getInstance() par new fragment(), cela a fonctionné à merveille. les fragments ne doivent pas être utilisés comme singletons et doivent être ramenés (si nécessaire) avec l'état enregistré.

0