您的位置:首页 > 移动开发 > Android开发

Android初学------系统设置之获取USB设备管理

2015-05-14 18:21 477 查看
//获得挂载的USB设备的存储空间使用情况

public static String[] getUSBStorage(Context context){
// USB Storage
String[] str=new String[2];
//mnt/udisk为USB设备在Android设备上的挂载路径.不同厂商的Android设备路径不同。
//这样写同样适合于SD卡挂载。 /mnt/media_rw/udisk  or   /storage/udisk
File path = new File("/mnt/media_rw/udisk");
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
long availableBlocks = stat.getAvailableBlocks();
String totalSize=Formatter.formatFileSize(context, (totalBlocks) * blockSize);
//		      String usedSize = Formatter.formatFileSize(context, (totalBlocks-availableBlocks) * blockSize);
String availableSize = Formatter.formatFileSize(context, availableBlocks * blockSize);
str[0]=totalSize;
str[1]=availableSize;
return str;//空间:总共/可用的
}


mIMountService.unmountVolume(usbPath, true, false);


卸载usb设备↑

IMountService 需要编译源码里的class 为jar 才可以使用。。。。mlgb 搞了我好久 传入sd卡路径 也可以卸载sd卡

监听usb设备

@Override
protected void onResume() {
super.onResume();
//监听usb设备
IntentFilter iFilter = new IntentFilter();
iFilter.addAction(Intent.ACTION_MEDIA_EJECT);
iFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);
iFilter.addAction(Intent.ACTION_MEDIA_REMOVED);
iFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
iFilter.addDataScheme("file");
mBroadcastReceiver = new USBBroadCastReceiver();
registerReceiver(mBroadcastReceiver, iFilter);
}

public  class USBBroadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_MEDIA_EJECT)) {
//USB设备移除,更新UI
Toast.makeText(getApplicationContext(), "USB已弹出", 0).show();
updateUSBIsShow();
findUSBDevice=false;
} else if (action.equals(Intent.ACTION_MEDIA_MOUNTED)) {
//USB设备挂载,更新UI
findUSBDevice=true;
updateUSBIsShow();
}else if (action.equals(Intent.ACTION_MEDIA_REMOVED)){
Toast.makeText(getApplicationContext(), "移除", 0).show();
updateUSBIsShow();
findUSBDevice=false;
}else if (action.equals(Intent.ACTION_MEDIA_UNMOUNTED)){
//	        	Toast.makeText(getApplicationContext(), "未安装", 0).show();
updateUSBIsShow();
findUSBDevice=false;
}
}
}

@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
//注销广播
unregisterReceiver(mBroadcastReceiver);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: