Android 下通过反射调用加载/卸载(mount/unmount) 外置SD卡

转载 2016年08月29日 11:49:24


232人阅读 评论(0) 收藏 举报

看别人的帖子,最后写出来,原帖没提供必要的几个文件,我这里找到了给大家找全了。


1.在你的工程src目录下创建android.os.storage包,导入我上传的几个源文件;从这里下载:http://download.csdn.net/detail/wangxinxxx/8269731

2.导入以下代码,调用mount()、unMount()就行了


  1. package cn.steven.timeswitch;  
  2.   
  3. import android.os.IBinder;  
  4. import android.os.RemoteException;  
  5. import android.os.storage.*;  
  6. import android.util.Log;  
  7.   
  8. import java.lang.reflect.Method;  
  9.   
  10. /** 
  11.  * Created by momobile on 2014-12-17. 
  12.  */  
  13. public class Utils {  
  14.     static IMountService iMountService;  
  15.   
  16.     static {  
  17.         Log.v("DWXD", android.os.Environment.getExternalStorageDirectory().toString());  
  18.         try {  
  19.             Method method = Class.forName("android.os.ServiceManager").getMethod("getService", String.class);  
  20.             IBinder binder = (IBinder) method.invoke(null"mount");  
  21.             iMountService = IMountService.Stub.asInterface(binder);  
  22.         } catch (Exception e) {  
  23.             e.printStackTrace();  
  24.         }  
  25.     }  
  26.   
  27.     public Utils() {  
  28.     }  
  29.   
  30.     static void unMount() {  
  31.         try {  
  32.             iMountService.unmountVolume(android.os.Environment.getExternalStorageDirectory().toString(), truetrue);  
  33.         } catch (RemoteException e) {  
  34.             e.printStackTrace();  
  35.         }  
  36.     }  
  37.   
  38.     static void mount(){  
  39.         try {  
  40.             iMountService.mountVolume(android.os.Environment.getExternalStorageDirectory().toString());  
  41.         } catch (Exception e) {  
  42.             e.printStackTrace();  
  43.         }  
  44.     }  
  45. }  


出处:

http://blog.csdn.net/a231930/article/details/7587880

http://blog.csdn.net/dahuaishu2010_/article/details/14127445

相关文章推荐

深入学习Android系统上mount命令的使用

在Android系统的预装apk病毒和elf病毒的清除时,经常需要先获取root权限,再执行 “mount -o remount,rw /system” 命令修改系统分区属性为可写,然后才能将...

深入学习Android系统上mount命令的使用

在Android系统的预装apk病毒和elf病毒的清除时,经常需要先获取root权限,再执行 “mount -o remount,rw /system” 命令修改系统分区属性为可写,然后才能将sy...

Android-vold源码分析之卸载SD卡(9)

作者:gzshun. 原创作品,转载请标明出处! 来源:http://blog.csdn.net/gzshun 本文分析卸载sd卡的源码,这些涉及的内容比较少,走过就行。在Android系统,...
  • gzshun
  • gzshun
  • 2011年12月31日 21:20
  • 11323

android中对SD卡挂载和卸载的监听

在android系统中,当SD卡挂载在电脑上时候,如果手动将语音备忘录中的录音删除的时,那么相应数据库中的数据也是需要修改的。此时实现需要对挂载进行监听,需要继承BroadcastReceiver类,...

Setting卸载SD卡,可以格式化,卸载过程中还可以卸载问题

我们首先来看setting的代码 在Memory.java中实现了一个StorageEventListener : StorageEventListener mStorageListene...

利用反射调用android隐藏函数getVolumePaths

今天做工程时遇到这么一个问题: 手机有2张储存卡,如何获取两张卡的路径,便于寻找某个文件呢? 参考了一些文档,得到以下信息: 1、各种android设备的存储器路径,是不一样的.比如T卡...

Android 存储设备管理 -- IMountService

转自:android usb流程(转载加整理)   在StorageManager的构造函数中,用到了IMountService,我们这里就讲一下它。 public StorageMa...
  • muojie
  • muojie
  • 2012年12月25日 11:46
  • 1325

android得到外置sd卡路径和判断外置sd卡是否卸载,已经验证20个机型左右

这个问题苦恼了好久。我这里有大约20台不同厂商的机器,包括平板和手机。 最后,我这个方案,是从网上的方法总结得出的。目前我这里的这20台机器已经测试通过。如果各位同仁发现不支持的机型,麻烦把机型说一...

linux下强行umount卸载设备

卸载NFS,结果出现无法卸载的情况 [root@localhost /]# umount /mnt/ umount: /mnt: device is busy umount: /mnt: dev...

Android 存储设备管理 -- IMountService (二)

这里我们主要是梳理下图中的架构,以IMountService为例。 在StorageManager的构造函数中,用到了IMountService /** * Cons...
  • muojie
  • muojie
  • 2012年12月25日 15:34
  • 2248
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 下通过反射调用加载/卸载(mount/unmount) 外置SD卡
举报原因:
原因补充:

(最多只允许输入30个字)