欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

判断SD卡是否已经挂载,判断SD卡挂载

来源: 开发者 投稿于  被查看 7730 次 评论:47

判断SD卡是否已经挂载,判断SD卡挂载


提供一个监听方法BroadcastReceiver 设置IntentFilter为:
Intent.ACTION_MEDIA_MOUNTED
Intent.ACTION_MEDIA_EJECT
Intent.ACTION_MEDIA_REMOVED
然后再public void onReceive(Context context, Intent intent) 中实现你的启动逻辑startActivity

1.[Java]代码

private final BroadcastReceiver broadcastRec = new BroadcastReceiver()  

{

  @Override

  public void onReceive(Context context, Intent intent) {

  if(intent.getAction().equals("android.intent.action.MEDIA_MOUNTED"))//SD  

卡已经成功挂载

  {

  imagepath =  

android.os.Environment.getExternalStorageDirectory();//你的SD卡路径

  }else  

if(intent.getAction().equals("android.intent.action.MEDIA_REMOVED")//各种未挂载状态

  ||intent.getAction().equals("android.intent.action.ACTION_MEDIA_UNMOUNTED")

  ||intent.getAction().equals("android.intent.action.ACTION_MEDIA_BAD_REMOVAL"))

  {

  imagepath = android.os.Environment.getDataDirectory();//你的本地路径

  }

  }

  };

  //在IntentFilter中选择你要监听的行为

  IntentFilter intentFilter = new  

IntentFilter(Intent.ACTION_MEDIA_MOUNTED);

  intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);

  intentFilter.addAction(Intent.ACTION_MEDIA_REMOVED);

  //intentFilter.addAction(Intent.ACTION_MEDIA_SHARED);

  intentFilter.addAction(Intent.ACTION_MEDIA_BAD_REMOVAL);

  //intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED);

  //intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);

  intentFilter.addDataScheme("file");

  registerReceiver(broadcastRec, intentFilter);//注册监听函数

  unregisterReceiver(broadcastRec);//使用完注销广播监听函数

用户评论