android, MediaScanner vs FileObserver for monitoring media file created -


what best option (mediascanner/fileobserver) monitor couple of paths (both internal , external memory of device) media files being created.

i need event when ever media file being created in folder being monitored.

-thanks & regards, manju

first of all, fileoberver memory-killer approach. consider high volume of files. rather contentobserver seems far better approach.

getcontentresolver().registercontentobserver(android.provider.mediastore.images.media.internal_content_uri, true,          new contentobserver(new handler()) {             @override             public void onchange(boolean selfchange) {                 log.d("your_tag","internal media has been changed");                 super.onchange(selfchange);                 long timestamp = readlastdatefrommediastore(context, mediastore.images.media.internal_content_uri);                 // comapare stored last value , need              }         }     ); getcontentresolver().registercontentobserver(android.provider.mediastore.images.media.external_content_uri, true,      new contentobserver(new handler()) {         @override         public void onchange(boolean selfchange) {             log.d("your_tag","external media has been changed");             super.onchange(selfchange);              long timestamp = readlastdatefrommediastore(context, mediastore.images.media.external_content_uri);             // comapare stored last value , need         }     } );  private long readlastdatefrommediastore(context context, uri uri) {         cursor cursor = context.getcontentresolver().query(uri, null, null, null, "date_added desc");         photoholder media = null;         long dateadded =-1;         if (cursor.movetonext()) {             long dateadded = cursor.getlong(cursor.getcolumnindexorthrow(mediacolumns.date_added));                  }         cursor.close();         return dateadded; } 

probably idea in service (ever running)! need unregister in ondestroy()

warning: tells when mediastore has been changed, not tellly specific addition/deletion. this, may have query mediastore detect change previous database or something.


Comments

Popular posts from this blog

assembly - 8086 TASM: Illegal Indexing Mode -

Java, LWJGL, OpenGL 1.1, decoding BufferedImage to Bytebuffer and binding to OpenGL across classes -

javascript - addthis share facebook and google+ url -