方法1:
filter = new IntentFilter();
filter.addAction(Intent.ACTION_MEDIA_EJECT);
filter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
filter.addAction(Intent.ACTION_MEDIA_MOUNTED);
filter.addDataScheme("file");
registerReceiver(mediaReceiver, filter);
private BroadcastReceiver mediaReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
**intent.getDataString();//得到的就有U盘的路径**
if (action == null)
return;
if (Intent.ACTION_MEDIA_EJECT.equals(action)
|| Intent.ACTION_MEDIA_UNMOUNTED.equals(action)) {
);
} else if (Intent.ACTION_MEDIA_MOUNTED.equals(action)) {
}
}
};
方法2:
IBinder service = ServiceManager.getService("mount");
IMountService asInterface = IMountService.Stub.asInterface(service);
try {
StorageVolume[] volumeList = asInterface.getVolumeList();
for (int i = 0; i < volumeList.length; i++) {
String path = volumeList[i].getPath();//挂载的设备路径
String state = volumeList[i].getState();//挂载的设备的状态,包括mounted/removed
} catch (RemoteException e) {
e.printStackTrace();
}