当前位置: 首页 > news >正文

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}")
            }
        }
    }

相关文章:

  • Python+Requests+Pytest+YAML+Allure接口自动化框架
  • 从国家能源到浙江交通投资,全息技术在能源交通领域的创新应用
  • Spring 框架基础教程(Day03)
  • JVM 01
  • C++菜鸟教程 - 从入门到精通 第五节
  • 隔空打印,IPP,IPD,HP Jetdirect协议的区别(Mac添加打印机四种协议的区别)
  • 【Unity】合批处理和GPU实例化的底层优化原理(完)
  • Spring 框架中的 BeanUtils
  • AugFPN
  • STM32标准库开发中断流程
  • 编译原理 pl0 词法解析器 使用状态机与状态矩阵,和查找上一步得到分析
  • Windows下rust的安装
  • python 中match...case 和 C switch case区别
  • 数据库联表Sql语句建一个新表(MySQL,Postgresql,SQL server)
  • Linux开机、重启与用户登录注销全解析
  • C++之模板二番战
  • Spring Boot事件机制详解
  • 【STM32】知识点介绍一:硬件知识
  • 画一个分布式系统架构图,标注服务注册、网关、熔断
  • python中的demjson包介绍
  • 巴基斯坦副总理兼外长达尔将访华
  • 《缶翁的世界》首发:看吴昌硕王一亭等湖州籍书画家的影响
  • 浙江理工大学传播系原系主任刘曦逝世,年仅44岁
  • 国寿资产获批参与第三批保险资金长期投资改革试点
  • 李成钢出席中国与《数字经济伙伴关系协定》成员部级会议
  • 上海高院与上海妇联签协议,建立反家暴常态化联动协作机制