• 整体框架

Vold是Volume Daemon的缩写,它是Android平台中外部存储系统的管控中心,是管理和控制Android平台外部存储设备的后台进程。其功能主要包括:SD卡的插拔事件检测、SD卡挂载、卸载、格式化等。Android存储管理的状态控制主要是在StorageManagerService类中,在8.0之前是MountService类。

  • 背景

修改Android8.0 Car版本系统音乐应用,使其能够识别U盘上的音乐。目前只能识别内部存储及SD卡上的音乐。

三、一些弯路

  1. 与USB HOST无关

前期在网上找的USB HOST相关的资料,首先修改frameworks/native/data/etc/目录的tablet_core_hardware.xml和handheld_core_hardware.xml两个文件,在文件末尾添加<feature name="android.hardware.usb.host" />这句话。但经过验证无效,无法识别USB设备。

四、梳理分析

梳理一下目前的现象:串口中可以打印出usb相关的log,但是android系统识别不了USB设备,接收不到MEDIA_MOUNTED、MEDIA_UNMOUNTED等媒体插拔的广播,StorageManagerService也接收不到VOLUME_STATE_CHANGED等受系统保护的广播。经过一些分析,应该首先验证板子是否支持USB设备。所以想到查看板子参数是否支持。打开设置应用,在Storage栏位,可以看到插入的U盘设备,但是双击U盘设备,发现不支持此存储设备,提示“format as portable storage”,看来需要格式化U盘。按照向导操作之后,在设置中可以识别U盘中的文件了。真是喜出望外。

在此思考一下为什么要格式化U盘呢?格式化前,U盘好像是FAT格式的,格式化后是FAT32格式的,应该是和文件系统有关。在网上看的一些资料说Ntfs适合于磁盘,exfat适用于闪存盘 ,Android适用fat32格式的U盘,对此说法不做保证。

同时,讲一下Android M新功能Adoptable Storage Devices(适配的存储设备)。Adoptable Storage Devices使系统获得了更大的存储容量,并且使用户可以自由移动应用和隐私数据到外部存储设备,不在需要第三方工具。用户使用Android设备时,可以主动的选择把外部存储设备格式化为常规移动存储或者系统内部存储。在格式化时系统给了两种选择:(1)Use as portable storage(for moving photos and other media between divices),仅仅作为外部存储设备;(2)Use as internal storage(for storing anything on this device only,including apps and photos),包裹一个加密层后,能够作为内部存储空间存储应用和隐私数据,经过加密后,该存储设备就不能再被别的设备使用。

五、权限问题

在设置中识别USB设备后高兴的太早。兴冲冲打开系统音乐,发现识别出了U盘,兴奋的点击播放,结果-------------------依然无法播放^_^,提示“localmediaplayer seem to be working right now.”。查看日志,缺少WRITE_EXTERNAL_STORAGE权限。在localmediaplayer系统音乐后台服务的清单文件中添加 WRITE_MEDIA_STORAGE权限后,可以正常的播放U盘上的音乐了。

六、总结

最后,总结一下读取U盘上文件的方案。系统是Android 8.0 Car版本,硬件是renesas开发板。1.在设置中格式化U盘;2.在程序中添加WRITE_EXTERNAL_STORAGE权限。

参考链接:

https://blog.csdn.net/gaojinshan/article/details/9770557

https://blog.csdn.net/su1987582/article/details/48828781

https://blog.csdn.net/q1183345443/article/details/82179413

Android 8.0 Car开发板读取U盘上的文件相关推荐

  1. 【沁恒WCH CH32V307V-R1开发板读取板载温度实验】

    [沁恒WCH CH32V307V-R1开发板读取板载温度实验] 1. 前言 2. 软件配置 2.1 安装MounRiver Studio 3. ADC项目测试 3.1 打开ADC工程 3.2 编译项目 ...

  2. Android 9.0/P 开发问题及解决方案汇总

    Android 9.0/P 开发问题及解决方案汇总 参考文章: (1)Android 9.0/P 开发问题及解决方案汇总 (2)https://www.cnblogs.com/renhui/p/979 ...

  3. miui7开发版 Android6.0,Android 6.0 MIUI7开发版内测开始推送:

    原标题:Android 6.0 MIUI7开发版内测开始推送: 前瞻科技 1 月 7 日讯:Android 6.0 系统推出至今已经有几个月了,小米用户也一直在吐槽基于 Android 6.0 MIU ...

  4. 普中科技HC6800-EM3 V3.0单片机开发板资料

    HC6800-EM3 V3.0的开发板资料很难找,我也找了很久才找到,特此分享一下 点击阅读全文查看下载链接(百度云)

  5. 安卓读取mysql数据库文件路径_Android开发实现读取assets目录下db文件的方法示例...

    本文实例讲述了Android开发实现读取assets目录下db文件的方法.分享给大家供大家参考,具体如下: 最近准备打算写一个关于天气预报的app,偶然的机会在一大神的博客上看到了一个获取天气的api ...

  6. USB Gadget iMX6UL开发板模拟U盘

    iMX6UL开发板模拟U盘 参考资料: 内核源码内:/{内核目录}/Documentation/usb/目录下 gadget-testing.txt mass-storage.txt 文件 网址:Ba ...

  7. USB Gadget iMX6U LL开发板模拟U盘

    IMX6ULL开发板模拟U盘 Linux版本:4.1.15 使用开发板:IMX6ULL 编译环境:Ubuntu 14.04 步骤如下: 1. 首先配置内核 进入 Device Drivers ---& ...

  8. 读取远程服务器上文件内容,读取远程服务器上的文件

    读取远程服务器上的文件 内容精选 换一换 已成功登录Java性能分析.待安装Guardian的服务器已开启sshd.待安装Guardian的服务器已安装JRE,JRE版本要求为Huawei JDK 8 ...

  9. python连接linux服务器读取txt文件_python 读取Linux服务器上的文件方法

    使用Python语句,读取Linux远端服务器上的文件打印到控制台的代码实现: 下载包:paramiko import paramiko #服务器信息,主机名(IP地址).端口号.用户名及密码 hos ...

最新文章

  1. CentOs上搭建git服务器
  2. 人脸检测算法_目前最强!开源人脸检测算法:RetinaFace
  3. 我司那产品经理丨第一期
  4. 有奖竞赛 | “神策杯”高校算法大师赛揭幕,寻找最强文本处理大神
  5. Java并发编程—JUC的Lock锁
  6. GNU make manual 翻译( 一百零四)
  7. STM32启动过程解析-2.02固件库启动文件分析
  8. linux lsattr命令: 显示文件属性
  9. Python学习入门基础教程(learning Python)--5 Python文件处理
  10. E9流程表单中动态自定义添加button js代码
  11. MongoDB游标操作(4)
  12. Django开发Restful Api文档
  13. redis中以目录形式存储和读取数据
  14. 操作系统发展趋势分析,以及对开发者的影响。
  15. vue3+vite assets动态引入图片的几种方式,解决打包后图片路径错误不显示的问题
  16. android用户界面组件都是放置在,Android开发工程师第十章 节 用户界面高级组件.ppt...
  17. ESP32游戏机总体设计
  18. Posix 接口笔记
  19. 声卡突然听不到监听_声卡没有声音了为什么
  20. 常用Hadoop命令

热门文章

  1. 试用期、实习期和见习期的区别及规定
  2. 新闻速递 | 虹科与Phototherm正式建立合作伙伴关系
  3. 深入理解GBDT二分类算法
  4. 【WPS表格】数据透视表:排序与筛选
  5. 三国志战略版:关羽、张飞、关银屏的最新开荒转型阵容
  6. 12306:为防止囤票 不再售卖行程冲突的车票
  7. 微信外部链接无法使用浏览器打开的解决方案(含代码)
  8. linux zip压缩排除目录,linux tar压缩排除某个文件夹的方法
  9. xp系统打印机服务器不可用,xp系统使用打印机服务提示“打印不成功”的步骤介绍...
  10. 搜狗浏览器 表单登录问题的解决