Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Acceso a un proveedor de contenido personalizado desde una aplicación diferente

Hola, he creado una aplicación para Android que utiliza un proveedor de contenido personalizado llamado CustomCP, implementa todos los métodos y todo funciona bien al administrar datos dentro de la aplicación, pero cuando intento acceder a ella desde otra aplicación sigo recibiendo un error de "Error al Busque información sobre el proveedor de com.example.customcp.

He declarado a mi proveedor de contenido en el archivo de manifiesto de la primera aplicación como

<provider android:name="com.example.CustomCP" android:authorities="com.example.customcp"/> 

Trato de llamar al proveedor en la segunda actividad de inicio de la aplicación

 public class app2 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Uri kUri = Uri.parse("content://com.example.customcp/key"); Cursor c = managedQuery(kUri, null, null, null, null); } } 

Así que la pregunta es simple, ¿es posible acceder a un proveedor de contenido personalizado desde múltiples aplicaciones?

  • Obtener dirección desde la tabla "canonical_addresses"
  • ¿Cómo utilizar ContentObserver con RecyclerView?
  • ¿Cómo insertar correctamente valores en la base de datos SQLite utilizando el método insert () de ContentProvider mediante un CursorLoader?
  • ContentProvider sin SQL
  • Android ContentProvider y Google IO Rest Talk
  • Cómo copiar archivo de imagen de la Galería a otra carpeta mediante programación en Android
  • Qué hacer cuando - java.io.FileNotFoundException: ¿No hay proveedor de contenido?
  • ¿Cómo arreglar el proveedor de contenido url no se encuentra en android Proveedor de contenido?
  • 3 Solutions collect form web for “Acceso a un proveedor de contenido personalizado desde una aplicación diferente”

    Sí, es posible acceder a un proveedor de contenido personalizado desde otra aplicación. Usando su terminología llamaremos al proveedor de contenido CustomCP y la otra aplicación AppA. (AppA es el que quiere acceder al proveedor). Este enfoque ha demostrado su eficacia:

    1. Especifique el proveedor de contenido deseado (CustomCP) desde dentro de AppA utilizando un ContentProviderClient:

      Uri yourURI = Uri.parse("content://com.example.customcp/YourDatabase"); ContentProviderClient yourCR = getContentResolver().acquireContentProviderClient(yourURI);

    2. Acceda al proveedor de contenido como lo haría normalmente desde la aplicación A. Por ejemplo:

      yourCursor = yourCR.query(yourURI, null, null, null, null);

      Nota: debe incluir el código dentro de un bloque try / catch o incluir un "throws RemoteException" ya que el proveedor no está en App A.

    3. El Manifiesto de CustomCP debe especificar el proveedor, incluir los permisos permitidos (por ejemplo, leer y / o escribir) y el proveedor debe exportarse. He aquí un ejemplo:

       <provider android:name="your.package.contentprovider.YourProvider" android:authorities="YourAuthority" android:readPermission="android.permission.permRead" android:exported="true" > </provider> 

    En el archivo de manifiesto, asegúrese de que su

      "Proveedor android ..>" 

    Esta dentro de tu

      "Application .. / application>" 

    Espero que ayude

    Después de crear el proveedor de contenido, especifique el proveedor de contenido en el archivo de manifiesto. Puede mencionar proveedor de contenido que utiliza la etiqueta. Dentro de la etiqueta del proveedor no olvide mencionar el nombre y atributos de las autoridades. Esta declaración debe ser ..

     <provider android:name="pakgName.ProviderClassName" android:authorities="pakgName.ProviderClassName" android:multiprocess="true" > </provider> 

    Aquí lo que usted menciona en el atributo de las autoridades que debe coincidir cuando intenta obtener los datos del proveedor.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.