Bienvenidos sean a este post, hoy veremos como se debe agregar nuestro ContentProvider en AndroidManifest.xml para poder hacerlo visible al sistema, en este caso es simple porque debemos agregarlo dentro del application pero antes veamos algunas de las propiedades disponibles para el tag provider, el cual es el que nos permitira habilitarlo:

  • authorities, informa la parte de la autoridad de la URI, se pueden informar mas de una
  • name, nombre de la clase donde hemos implementado nuestro ContentProvider
  • label, etiqueta que describe el ContentProvider que se mostrara al usuario, es una referencia de tipo String
  • icon, referencia a un recurso de tipo drawable con un icono que representa a nuestro ContentProvider
  • enabled, indica si esta habilitado o no, por defecto es true
  • exported, indica si se puede acceder desde otras aplicaciones, por defecto su valor es false, con este valor el ContentProvider solo podra ser accedido por aplicaciones con el mismo id de usuario donde se crea
  • readPermission, permiso requerido para consultar el ContentProvider
  • writePermission, igual al anterior pero para modificarlo
  • permission, permiso requerido para consultar o modificar el ContentProvider, sin efecto si se aplica alguno de los anteriores
  • multiprocess, indica si cualquiera puede crear una instancia del ContentProvider (true) o solamente el proceso de la aplicacion (false), este ultimo es por defecto
  • process, nombre del proceso en que el ContentProvider debe ejecutarse
  • initOrder, indica el orden del ContentProvider en que ha de ser instalado con respecto a otros ContentProvider
  • syncable, indica si la informacion del ContentProvider esta sincronizada con un servidor

Con las propiedades explicadas, veamos el bloque que debemos agregar dentro de AndroidManifest.xml:

        <provider
            android:authorities="org.example.puntuacionesprovider"
            android:name="org.example.puntuacionesprovider.PuntuacionesProvider"
            android:exported="true" />

Como pueden ver, las dos propiedades minimas y obligatorios son authorities y name para identificar a nuestra autoridad de la URI y la clase donde se implemento al ContentProvider, y para este caso agregamos la propiedad exported la cual nos permitira utilizar este ContentProvider con otras aplicaciones, lo cual haremos para nuestro proximo post, con esta modificacion realizada veamos como quedo finalmente el codigo de AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.example.puntuacionesprovider">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <provider
            android:authorities="org.example.puntuacionesprovider"
            android:name="org.example.puntuacionesprovider.PuntuacionesProvider"
            android:exported="true" />
    </application>

</manifest>

En resumen, hoy hemos visto como se habilita un ContentProvider en el Manifiesto de Android, hemos visto algunas de sus propiedades, las propiedades principales, y hemos preparado todo lo necesario para nuestro proximo post, espero les haya sido util sigueme en Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios