private BroadcastReceiver mediaScanner = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
// do something
}
};
@Override
protected void onResume() {
super.onResume();
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_SCANNER_FINISHED);
registerReceiver(mediaScanner, intentFilter);
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(mediaScanner);
}
可能是因为在注册之前没有声明数据类型,即没有调用addDataScheme(String);
所以把这句补上就OK了,代码如下:
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_SCANNER_FINISHED);
intentFilter.addDataScheme("file");
registerReceiver(mediaScanner, intentFilter);