您的位置:首页 > 其它

监听SD卡插拔广播

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

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

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

具体监听方法可参考:

/article/9383592.html

/article/7955614.html

<!-- 往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() {}

@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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: