监听SD卡插拔广播

来源:互联网 发布:鸭鸭网络数字点卡平台 编辑:程序博客网 时间:2024/05/30 23:06

一:在AndroidManifest.xml文件中一定要在intent-filter中加上<data android:scheme=”file”>,否则无法监听到SD卡插拔广播;

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

在AndroidManifest.xml文件中打开权限:<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

具体监听方法可参考:

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


    <!-- 往sdcard中写入数据的权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 在sdcard中创建/删除文件的权限 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />


eg:

//---------TF卡拔出 广播接收代码------------protected TfBroadcastReceiver tfReceiver;public class TfBroadcastReceiver extends BroadcastReceiver {public TfBroadcastReceiver() {}@Overridepublic 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);}





原创粉丝点击