Android获取U盘路径
1. 权限
<uses-permission android:name="android.permission.USB_PERMISSION" />
2. 通过storemanager获取usb 路径
val storageManager = getSystemService(STORAGE_SERVICE) as StorageManager
val volumes = storageManager.storageVolumes
for (volume in volumes) {
val path = volume.directory!!.path
if (volume.isRemovable) {
mainViewModel.usbStorage = path
}
}
3. 监听u盘状态
private fun registerUsbReceiver() {
val filter = IntentFilter()
filter.addAction(Intent.ACTION_MEDIA_MOUNTED)
filter.addAction(Intent.ACTION_MEDIA_UNMOUNTED)
filter.addAction(Intent.ACTION_MEDIA_BAD_REMOVAL)
filter.addDataScheme("file")
registerReceiver(usbReceiver, filter)
}
//默认U盘安装地址
private val usbReceiver: BroadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val action = intent.action
if (action == Intent.ACTION_MEDIA_MOUNTED) {
mainViewModel.usbStorage = intent.data!!.path
Log.d("MainActivity", "usbReceiver ${mainViewModel.usbStorage}")
}
}
}