橘本橘橘猫 2022-08-05 18:12 采纳率: 25%
浏览 85
已结题

Android操作U盘设备

问题遇到的现象和发生背景
工作需要,开始学习Andorid,开发一个测试U盘设备的AndoridTool,但是U盘插入后有问题:
问题1:采用UsbDevice类,获取到了权限,也获取到了挂载路径,但是通过File找不到这个挂载路径(挂载路径是正确的),因此无法操作u盘设备
问题2:改用社区的 UsbMassStorageDevice类,能够获取到IUsbDevice、interface、configuration、endpotin等信息,但是在Init的时候,设备掉盘了,貌似错误是:access denied finding property

问题相关代码,请勿粘贴截图
问题一 代码:
File file = new File(path);//path是已经获取到的挂载路径:/mnt/media_rw/1F32-7EAE
if(file.exists()){
//挂载路径存在
{
else{
//挂载路径不存在
}

问题二代码:
//已经获取到了对应的UsbMassStorageDevice对象:massDevice,执行下面代码,会掉盘
massDevice.Init();//初始化,会掉盘

//============以下为源码
//Init里的内容:
setupDevice();//这里面会嗲盘

//setupDevice里的内容:
private fun setupDevice() {
usbCommunication = UsbCommunicationFactory
.createUsbCommunication(usbManager, usbDevice, usbInterface, outEndpoint, inEndpoint)这里掉盘
//下面代码省略
}

//createUsbCommunication里面内容:
return if (underlyingUsbCommunication == UnderlyingUsbCommunication.DEVICE_CONNECTION_SYNC) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
JellyBeanMr2Communication(usbManager, usbDevice, usbInterface, outEndpoint, inEndpoint) //这里面会掉盘,这个类貌似会进行通信
} else {
Log.i(TAG, "using workaround usb communication")
HoneyCombMr1Communication(usbManager, usbDevice, usbInterface, outEndpoint, inEndpoint)
}
} else {
UsbRequestCommunication(usbManager, usbDevice, usbInterface, outEndpoint, inEndpoint)
}

运行结果及报错内容
问题1:找到了对应的挂载路径,但是挂载路径却不存在??
问题2:LogCat显示的信息:
E/libc: Access denied finding property "vendor.mali.config"
E/libc: Access denied finding property "persist.vendor.sf.fbc"
E/libc: Access denied finding property "persist.vendor.gpu.fbc"
E/libc: Access denied finding property "persist.vendor.vsp.fbc"

我尝试的操作
网上查阅了各种资料,都没能成功操作u盘设备

我想要达到的结果
两个问题有一个ok都行,但两个方法都失败了,想请教社区老哥,问题出在哪里?谢谢,问题二的权限是刚刚发现的,我继续尝试

  • 写回答

4条回答 默认 最新

  • 橘本橘橘猫 2022-08-05 18:25
    关注

    ** 补充结果:**
    问题二的logcat抓取的是:E/ScsiBlockDevice: Error transferring command; errno 0 null

    补充看法:
    我查阅了很多相关的贴子,采用社区类UsbMassStorageDevice的,有些人在Device.Init的时候会报错,设备掉盘,但是目前没能找到解决方法,只能再通过USBDevice找interface和endpoint通信试一试了

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 8月13日
  • 创建了问题 8月5日

悬赏问题

  • ¥15 C#.net通过内网url地址获取文件并下载问题,浏览器postman可以正常下载,用程序不行
  • ¥15 本人本科机械,目前研一。没有深度学习基础,目前对研究生课题一片迷茫,请教各位!
  • ¥15 关于R语言单因素与多因素线性回归的平均值
  • ¥15 服务器清除BIOS之后引导不了
  • ¥15 CPLEX用OPL编写的混合整数线性优化问题。
  • ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
  • ¥15 前端预览docx文件,文件从后端传送过来。
  • ¥15 层次聚类和蛋白质相似度
  • ¥25 主成分分析中的第一第二主成分分别代表哪些参数
  • ¥15 oracle数据库查询语句问题