Android: How to detect a change in MediaStore when connected over MTP

后端 未结 2 1075
暗喜
暗喜 2020-12-08 12:51

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

2条回答
  •  误落风尘
    2020-12-08 13:01

    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);
    

提交回复
热议问题