android 通过编程方式 卸载sdcard
16lz
2021-01-23
1 注册 mount 服务
private synchronized IMountService getMountService(){ IBinder mountBinder = ServiceManager.getService("mount"); IMountService mountService = null; if (service != null) { mMountService = IMountService.Stub.asInterface(mountBinder); } else { Log.i("mountservice","just can not get the service"); } return mountService;}
2 获得sdcard的状态
private String getExternalSdcardState(){ String state = Environment.MEDIA_REMOVED; try{ StorageManager sm = (StorageManager)getSystemService(Context.STORAGE_SERVICE); StorageVolume[] volumes = storagemanager.getVolumeList(); String path = volumes[i].getPath(); if( !path.equals("/mnt/external_sdcard") ) { continue; } state = sm.getVolumeState(path); }catch(Execption e){ } return state;}
3 卸载sdcard
private void unmountExternalStorage() { String state = getExternalSdcardState(); if (state.equals(Environment.MEDIA_MOUNTED)) { IMountService service = getMountService(); try { service.unmountVolume("/mnt/external_sdcard", true, false); } catch (RemoteException e) { } } }
这段代码必须发在android 源码中编译,否则会报错
更多相关文章
- android中进行https连接的方式(源码)
- android联系人源码解析
- Android UI的加载源码分析
- android 项目源码
- Android 源码下载遇到 403错误 的解决办法
- j2me to android 例子源码下载
- Android存储基础及相关源码
- Android闹钟最终版【android源码闹钟解析】