监听SD卡插拔广播

一:在AndroidManifest.xml文件中一定要在intent-filter中加上否则无法监听到SD卡插拔广播;

二:如果在Activity里面用代码注册广播,那也一定要加iFilter.addDataScheme("file")。

在AndroidManifest.xml文件中打开权限:

具体监听方法可参考:

http://blog.csdn.net/a443453087/article/details/8085555
http://blog.csdn.net/winson_jason/article/details/8626809


   
   

   


eg:

//---------TF卡拔出 广播接收代码------------
	protected TfBroadcastReceiver tfReceiver;
	public class TfBroadcastReceiver extends BroadcastReceiver {
		public TfBroadcastReceiver() {}
		
		@Override
		public void onReceive(Context arg0, Intent intent) {
			Log.i("sxy", "tf卡拔出!!!");
			if(hasTfFile)
			{
				BookSelectActivity.this.setResult(RESULT_CANCELED, null);
				BookSelectActivity.this.finish();
			}
		}
	}
	
	private final static String tf_EJECT = "android.intent.action.MEDIA_EJECT";//tf卡弹出
	//注册TF卡拔出广播
	private void registerTfReceiver()
	{
		Log.i("sxy", "注册TF卡拔出广播");
        hasTfFile = false;
        
		IntentFilter actionFilter = new IntentFilter(tf_EJECT);
		actionFilter.addDataScheme("file");
		tfReceiver = new TfBroadcastReceiver();
	   	registerReceiver(tfReceiver, actionFilter);
	}
	
	//取消TF卡拔出广播的注册
	private void unregisterTfReceiver()
	{
		Log.i("sxy", "取消TF卡拔出广播的注册");
		hasTfFile = false;
		
		unregisterReceiver(tfReceiver);
	}





你可能感兴趣的:(Android随笔录)