2008-10-23 13 views
16

¿Hay alguna manera elegante en la API de Android para detectar nuevos medios cuando se escribe en el dispositivo? Me interesan principalmente las fotos tomadas por la cámara, el video tomado por la cámara y el audio grabado desde el micrófono.Android API para detectar nuevos medios desde la cámara y el micrófono incorporados

Mi pensamiento actual es escanear periódicamente cada proveedor de contenido multimedia y filtrar en función del último tiempo de escaneo.

Me pregunto si hay algún servicio que pueda enganchar para recibir notificaciones en tiempo real.

+0

Ver publicación similar: http://stackoverflow.com/questions/6639001/android-how-does-google-instant-upload-work –

Respuesta

10

Hay una intención transmisión especial que debe ser llamado cada vez que una aplicación escribe nada nuevo a la tienda de medios:

Intent.ACTION_MEDIA_SCANNER_SCAN_FILE 
Intención

La difusión incluye la ruta de acceso al archivo nuevo, accesible a través de el método Intent.getDataString().

Para escuchar para ello, basta con crear una BroadcastReceiver y registrarlo utilizando un IntentFilter como se muestra a continuación:

registerReceiver(new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     String newFileURL = intent.getDataString(); 
     // TODO React to new Media here. 
    }  
    }, new IntentFilter(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE)); 

Esto sólo funcionará para los archivos que se insertan en uno de los proveedores de contenido de la tienda. Además, depende de la aplicación que lo está transmitiendo allí, transmitiendo el intento, que hace toda la aplicación nativa (Google).

+3

Esto no funcionó para mí, Galaxy Nexus. Intenté el código anterior e incluso manifesté que xml (receptor) –

+1

no funcionaba en nexus 5 lollipop –

Cuestiones relacionadas