Dos aplicaciones con ID de usuario compartido

2 minutos de lectura

¿Pueden dos aplicaciones con ID de usuario compartido acceder a recursos como elementos de diseño o cadenas?

¿Pueden acceder a los activos de los demás?

¿Pueden habilitar o deshabilitar componentes del otro?

Si alguno de estos es posible, por favor explique cómo se debe hacer.

Busqué mucho pero no pude encontrar ningún ejemplo sobre el uso compartido de ID de usuario.

  • Duplicado de stackoverflow.com/questions/9783765/…

    – balido

    4 de noviembre de 2013 a las 23:42

Puedes usar android:sharedUserId en AndroidManifest.xml para permitir que su aplicación comparta la misma identificación de usuario con otra aplicación.

android: ID de usuario compartido

El nombre de un ID de usuario de Linux que se compartirá con otras aplicaciones. De forma predeterminada, Android asigna a cada aplicación su propia identificación de usuario única. Sin embargo, si este atributo se establece en el mismo valor para dos o más aplicaciones, todas compartirán el mismo ID, siempre que también estén firmadas por el mismo certificado. Las aplicaciones con el mismo ID de usuario pueden acceder a los datos de los demás y, si lo desean, ejecutarse en el mismo proceso.

Tenga en cuenta que deben estar firmados por el mismo certificado.

Dos aplicaciones que comparten la misma identificación de usuario pueden acceder al recurso de la otra.

Por ejemplo:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.shareusertesta"
    android:versionCode="1"
    android:versionName="1.0" 
    android:sharedUserId="com.example">

Entonces podemos iniciar un nuevo contexto de com.example por:

Context friendContext = this.createPackageContext( "com.example",Context.CONTEXT_IGNORE_SECURITY);

Y accede a algunos recursos de esa aplicación:

friendContext.getResources().getString(id);
friendContext.getResources().getDrawable(id);
friendContext.registerReceiver(...);

  • yo obtengo android.content.pm.PackageManager$NameNotFoundException: Application package com.example not found. ¿Quiso decir el nombre completo del paquete?

    – tímido

    28 de noviembre de 2016 a las 9:51

  • De la documentación de Android, “las ID de usuario compartidas causan un comportamiento no determinista dentro del administrador de paquetes. Como tal, se desaconseja su uso y puede eliminarse en una versión futura de Android. En su lugar, las aplicaciones deben usar mecanismos de comunicación adecuados, como servicios y proveedores de contenido, para facilitar la interoperabilidad entre componentes compartidos”.

    – Prudhvi

    23 de diciembre de 2019 a las 18:31


¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad