Android permission.INTERACT_ACROSS_USERS_FULL

Tengo una aplicación grande en android.

De vez en cuando la aplicación se bloquea con un error no claro. No sé exactamente cuándo y por qué sucede esto.

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 

¿Alguna ayuda?

Android.permission.INTERACT_ACROSS_USERS_FULL es un permiso de nivel de firma.

Simplemente añada este android:protectionLevel="signature" en su manifiesto.

Para más detalles puede comprobar esto

http://developer.android.com/guide/topics/manifest/permission-element.html

Me gusta:

 <permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" android:protectionLevel="signature"/> 

Para resumir de esta respuesta, y mirando las fuentes de UserHandle.java vemos el significado de la identificación de usuario del marco .

 # | @UserIdInt | Value | Status | Description | # | --------------------- | ------ | ---------- | ------------| # | USER_OWNER | 0 | deprecated | "owner" user of the device # | USER_SYSTEM | 0 | ok | "system" user of the device # | USER_ALL | -1 | ok | ALL users on the device | USER_CURRENT | -2 | ok | the currently active user # | USER_CURRENT_OR_SELF | -3 | ok | id from which we would like to send to the current user # | USER_NULL | -10000 | ok | An undefined user id 

A continuación, para entender lo que android:protectionLevel="signature" significa, usted tendrá que leer la página acerca de permission-elemento . Lo que se resume en la tabla:

Introduzca aquí la descripción de la imagen

Así que lo que necesitas hacer en tu AndroidManifest.xml depende mucho de qué API necesitas soportar, ya que los APIs más altos también requieren una android:permissionGroup= , para android:permissionGroup= no normales ("peligrosos") …

También es bueno saber (por @CommonsWare)

Para poder mantener INTERACT_ACROSS_USERS , su aplicación debe estar firmada por la clave de firma del firmware o debe instalarse en la partición del sistema.

Para poder mantener INTERACT_ACROSS_USERS_FULL , su aplicación debe estar firmada por la clave de firma del firmware.

El mismo problema que estaba recibiendo cuando uso billingProcessor.subscribe () o billingProcessor.purchase () con dos parámetros como Activity y product_id del producto. Hubo i pasar el valor de product_id está vacío .

Por favor, una vez asegúrese de que está pasando el valor en el product_id no está vacía.

  • Permiso para leer datos de la tarjeta SD
  • Android utiliza el problema de permiso al instalar aplicaciones en orden incorrecto
  • Usando ParseFacebookUtils.logInWithReadPermissionsInBackground no guarda los permisos de Facebook Android
  • Android: ¿De dónde proviene el permiso "System tools"?
  • Permiso de manifiesto en Android Studio
  • Permiso de denegación: ... requiere android.permission.WRITE_EXTERNAL_STORAGE
  • Google Play muestra el permiso implícito READ_EXTERNAL_STORAGE
  • Cómo evitar que otras aplicaciones definan el mismo nombre de permiso
  • Aplicación de filtros de Android Market - ¿Telefonía?
  • Google Play detecta nuevos permisos después de usar Android Studio
  • No se puede resolver el método checkSelfPermission
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.