I have big problems with MediaStore. I need to handle events when MediaStore is changed over MTP. I already have a receiver for android.intent.action.MEDIA_SCANNER_FIN
Create a content observer class
class MyObserver extends ContentObserver {
public MyObserver(Handler handler) {
super(handler);
}
@Override
public void onChange(boolean selfChange) {
this.onChange(selfChange, null);
}
@Override
public void onChange(boolean selfChange, Uri uri) {
doYourWorkHere();
}
}
Register the observer in your activity
Handler handler;
MyObserver observer;
handler = new Handler();
observer = new MyObserver(handler);
this.getContentResolver().
registerContentObserver(
MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
true,
observer);
Don't forget to unregister the observer in onDestroy() function
this.getContentResolver().unregisterContentObserver(observer);