M5能外接u盘直接安卓 读取u盘里面数据数据吗

平板/笔记本
HiLink生态产品
终端云服务专区
M5,可以外接U盘吗?
&独步江湖&
来自:华为Mate9 MHA-AL00
M5,可以外接U盘吗?
width:100%">
&花粉帮帮堂&
来自:浏览器
楼主,M5支持OTG功能的,可以外接U盘的。平板接口为 Type-C 接口。选择将 Type-C 转接头和 USB OTG 转接线同时使用(Type-C 转接头建议到华为商城购买)。然后连接U盘。
谢谢大神!&
width:100%">
&热心花粉&
来自:CMR-AL09
完成可以没有问题
width:100%">
&花粉版主&
来自:RXX-AL09
otg数据线就可以!
请问我用转接头接U盘,一直是反向充电,选择数据传输两秒自动变为反向充电,是转接头的原因还是?&
你是用官方的管接头还是第三方的&
第三方的,苏宁买的。是不是不兼容?&
width:100%">
&略有小成&
来自:CMR-W09
可以,直接用type c二用U盘就可以了。我用的金士顿128G正常使用
width:100%">
&登堂入室&
来自:SHT-AL09
可以 没问题的
width:100%">
&登堂入室&
来自:CMR-W09
在云电脑系统里不支持U盘
width:100%">
&炉火纯青&
来自:荣耀V10 我AI的快
我有个闪迪typec两用U盘,直接插上就可以使用了
width:100%">
&略有小成&
来自:荣耀9 美得有声有色
width:100%">
沙发王勋章
1000万花粉
纪念花粉俱乐部注册花粉数超过1000万
申请成为热心花粉,满足热心花粉条件即可获得!http://cn.club.vmall.com/forum.php?mod=viewthread&tid=183642
花粉俱乐部6周年
花粉俱乐部6周年
关注华为花粉俱乐部微信公众平台——“华为花粉俱乐部”
界面语言专区花粉勋章
剁手小王子
参加荣耀双十一晒单活动获奖花粉,颁发剁手小王子勋章
参加花粉俱乐部特定活动获取,人工发放
至少3个原创技术帖,每个帖≥5K浏览,有效回复数≥150,被加分数≥15
好基友勋章
花粉好机友,注册时间大于99天
在职斑竹的身份勋章,感谢斑竹的辛勤劳动
雨后 海边……缤纷芳华高原美最瞬间(1)『走走拍拍』【风光】青岛世纪公园
花粉客户端
Make it Possible
Make your device special
华为云空间
Huawei cloud services
音乐播放器
Huawei Music
Huawei Vmall
关注花粉俱乐部
举报邮箱:
|关注花粉俱乐部:
增值电信业务经营许可证:苏B2-号|
Copyright (C)
华为软件技术有限公司 版权所有 保留一切权利现因工作原因,很多留言及问题未进行回复处理,请多包涵,谢谢理解!
Android设备与外接U盘实现数据读取操作
现在越来越多手机支持OTG功能,通过OTG可以实现与外接入的U盘等USB设备实现数据传输。关于OTG,可以参考:
http://blog.csdn.net/srw11/article/details/。
最近项目上用到了该功能,项目上用的是安卓7.1的盒子,要实现与插入的U盘进行数据操作。通过大量的找资料,终于实现了项目上需要的功能。找资料主要是解决两个问题:
U盘权限问题
U盘文件路径及文件操作
废话不多说,感觉还是喜欢直接上代码才爽快。项目中用到了一个开源框架,开源地址是:
代码部分:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText u_disk_
private Button u_disk_
private Button u_disk_
private TextView u_disk_
private static final String ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION";
private UsbMassStorageDevice[] storageD
private UsbFile cF
private final static String U_DISK_FILE_NAME = "u_disk.txt";
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
showToastMsg("保存成功");
String txt = msg.obj.toString();
if (!TextUtils.isEmpty(txt))
u_disk_show.setText("读取到的数据是:" + txt);
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
private void initViews() {
u_disk_edt = (EditText) findViewById(R.id.u_disk_edt);
u_disk_write = (Button) findViewById(R.id.u_disk_write);
u_disk_read = (Button) findViewById(R.id.u_disk_read);
u_disk_show = (TextView) findViewById(R.id.u_disk_show);
u_disk_write.setOnClickListener(this);
u_disk_read.setOnClickListener(this);
public void onClick(View view) {
switch (view.getId()) {
case R.id.u_disk_write:
final String content = u_disk_edt.getText().toString().trim();
mHandler.post(new Runnable() {
public void run() {
saveText2UDisk(content);
case R.id.u_disk_read:
mHandler.post(new Runnable() {
public void run() {
readFromUDisk();
private void readFromUDisk() {
UsbFile[] usbFiles = new UsbFile[0];
usbFiles = cFolder.listFiles();
} catch (IOException e) {
e.printStackTrace();
if (null != usbFiles && usbFiles.length & 0) {
for (UsbFile usbFile : usbFiles) {
if (usbFile.getName().equals(U_DISK_FILE_NAME)) {
readTxtFromUDisk(usbFile);
* 保存数据到U盘,目前是保存到根目录的
private void saveText2UDisk(String content) {
File file = FileUtil.getSaveFile(getPackageName()
+ File.separator + FileUtil.DEFAULT_BIN_DIR,
U_DISK_FILE_NAME);
FileWriter fw = new FileWriter(file);
fw.write(content);
fw.close();
} catch (IOException e) {
e.printStackTrace();
if (null != cFolder) {
FileUtil.saveSDFile2OTG(file, cFolder);
mHandler.sendEmptyMessage(100);
* OTG广播注册
private void registerUDiskReceiver() {
IntentFilter usbDeviceStateFilter = new IntentFilter();
usbDeviceStateFilter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
usbDeviceStateFilter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
registerReceiver(mOtgReceiver, usbDeviceStateFilter);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
registerReceiver(mOtgReceiver, filter);
* OTG广播,监听U盘的插入及拔出
private BroadcastReceiver mOtgReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
switch (action) {
case ACTION_USB_PERMISSION:
UsbDevice usbDevice = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) {
if (usbDevice != null) {
readDevice(getUsbMass(usbDevice));
showToastMsg("没有插入U盘");
showToastMsg("未获取到U盘权限");
case UsbManager.ACTION_USB_DEVICE_ATTACHED:
UsbDevice device_add = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
if (device_add != null) {
redUDiskDevsList();
case UsbManager.ACTION_USB_DEVICE_DETACHED:
showToastMsg("U盘已拔出");
* U盘设备读取
private void redUDiskDevsList() {
UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
storageDevices = UsbMassStorageDevice.getMassStorageDevices(this);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0);
for (UsbMassStorageDevice device : storageDevices) {
if (usbManager.hasPermission(device.getUsbDevice())) {
readDevice(device);
usbManager.requestPermission(device.getUsbDevice(), pendingIntent);
if (storageDevices.length == 0) {
showToastMsg("请插入可用的U盘");
private UsbMassStorageDevice getUsbMass(UsbDevice usbDevice) {
for (UsbMassStorageDevice device : storageDevices) {
if (usbDevice.equals(device.getUsbDevice())) {
return null;
private void readDevice(UsbMassStorageDevice device) {
device.init();
Partition partition = device.getPartitions().get(0);
FileSystem currentFs = partition.getFileSystem();
currentFs.getVolumeLabel();
Log.e("Capacity: ", currentFs.getCapacity() + "");
Log.e("Occupied Space: ", currentFs.getOccupiedSpace() + "");
Log.e("Free Space: ", currentFs.getFreeSpace() + "");
Log.e("Chunk size: ", currentFs.getChunkSize() + "");
cFolder = currentFs.getRootDirectory();
} catch (Exception e) {
e.printStackTrace();
private void showToastMsg(String msg) {
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
private void readTxtFromUDisk(UsbFile usbFile) {
UsbFile descFile = usbF
InputStream is = new UsbFileInputStream(descFile);
StringBuilder sb = new StringBuilder();
BufferedReader bufferedReader = null;
bufferedReader = new BufferedReader(new InputStreamReader(is));
while ((read = bufferedReader.readLine()) != null) {
sb.append(read);
Message msg = mHandler.obtainMessage();
msg.what = 101;
mHandler.sendMessage(msg);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bufferedReader != null) {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
对应布局文件:
&?xml version="1.0" encoding="utf-8"?&
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.ldm.androidudisk.MainActivity"
android:orientation="vertical"&
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Android盒子外接U盘文件读写测试DEMO"
android:layout_gravity="center"
android:layout_margin="10dp"
android:id="@+id/u_disk_edt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:hint="输入要保存到U盘中的文字内容"/&
android:id="@+id/u_disk_write"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="center"
android:text="往U盘中写入数据"/&
android:id="@+id/u_disk_read"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="center"
android:text="从U盘中读取数据"/&
android:id="@+id/u_disk_show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
文件操作工具类:
package com.ldm.androidudisk.
import android.os.E
import com.github.mjdev.libaums.fs.UsbF
import com.github.mjdev.libaums.fs.UsbFileOutputS
import java.io.C
import java.io.F
import java.io.FileInputS
import java.io.IOE
import java.io.InputS
import java.io.OutputS
import static android.os.Environment.getExternalStorageD
* 文件操作工具类
下午3:17:10
public final class FileUtil {
public static final String DEFAULT_BIN_DIR = "usb";
* 检测SD卡是否存在
public static boolean checkSDcard() {
return Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState());
* 从指定文件夹获取文件
* 如果文件不存在则创建, 如果如果无法创建文件或文件名为空则返回null
public static File getSaveFile(String folderPath, String fileNmae) {
File file = new File(getSavePath(folderPath) + File.separator
+ fileNmae);
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
* 获取SD卡下指定文件夹的绝对路径
* 返回SD卡下的指定文件夹的绝对路径
public static String getSavePath(String folderName) {
return getSaveFolder(folderName).getAbsolutePath();
* 获取文件夹对象
* 返回SD卡下的指定文件夹对象,若文件夹不存在则创建
public static File getSaveFolder(String folderName) {
File file = new File(getExternalStorageDirectory()
.getAbsoluteFile()
+ File.separator
+ folderName
+ File.separator);
file.mkdirs();
public static void closeIO(Closeable... closeables) {
if (null == closeables || closeables.length &= 0) {
for (Closeable cb : closeables) {
if (null == cb) {
cb.close();
} catch (IOException e) {
e.printStackTrace();
private static void redFileStream(OutputStream os, InputStream is) throws IOException {
int bytesRead = 0;
byte[] buffer = new byte[1024 * 8];
while ((bytesRead = is.read(buffer)) != -1) {
os.write(buffer, 0, bytesRead);
os.flush();
os.close();
is.close();
* 把本地文件写入到U盘中
public static void saveSDFile2OTG(final File f, final UsbFile usbFile) {
UsbFile uFile = null;
FileInputStream fis = null;
fis = new FileInputStream(f);
if (usbFile.isDirectory()) {
UsbFile[] usbFiles = usbFile.listFiles();
if (usbFiles != null && usbFiles.length & 0) {
for (UsbFile file : usbFiles) {
if (file.getName().equals(f.getName())) {
file.delete();
uFile = usbFile.createFile(f.getName());
UsbFileOutputStream uos = new UsbFileOutputStream(uFile);
redFileStream(uos, fis);
} catch (IOException e) {
e.printStackTrace();
} catch (final Exception e) {
e.printStackTrace();
不要忘记在app/build.grade下添加:
compile 'com.github.mjdev:libaums:0.5.5'
及AndroidManifest.xml中添加权限:
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/&
android:name="android.permission.READ_EXTERNAL_STORAGE"/&
时间关系,就不贴图了,欢迎指导交流。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!请问手机下载一个什么样的软件,可以直接读取,U盘。优盘是不用数据_百度知道
请问手机下载一个什么样的软件,可以直接读取,U盘。优盘是不用数据
请问手机下载一个什么样的软件,可以直接读取,U盘。优盘是不用数据线的,直接可以插到手机上,请解答。
我有更好的答案
不要软件,首先需要手机支持OTG,只要支持某宝买一个OTG连接头就可以了,大约3块钱一个吧
电脑维修专家
貌似没有这样的软件吧
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。智能手机能像电脑那样直接插U盘或移动硬盘读取里面的数据吗?_百度知道
智能手机能像电脑那样直接插U盘或移动硬盘读取里面的数据吗?
还有,智能手机能同时运行几个程序?运行一程序(如QQ)时可以最小化去做别的事(如发短信、拍照)吗?最小化的程序会不会断开或暂停与网络的连接呢?
我有更好的答案
可以。智能手机通过数据线连接到电脑的USB接口上。连接上之后电脑会识别到移动存储设备,并检测驱动程序。检测到驱动程序后,WinXP会弹出对话框向导,引导进行驱动的安装,Win7能识别后自行下载驱动程序。如果无法自动下载驱动程序,可以安装在电脑和手机上都如360手机助手等第三方手机助手工具。重新插拔数据线后,助手工具可以识别并完成驱动程序的安装。驱动程序安装完毕后,就可以在 & 我的电脑 & 里找到智能手机的移动存储盘符了,跟U盘类似,可以直接打开查看,复制,剪切。注意:这种方式打开后,手机存储设备中非隐藏的目录(文件名前多一个半角点)都会显示出来,不能明确文件夹是什么用途时,不要随意删除,避免手机应用运行异常。
采纳率:90%
来自团队:
可以运行多个程序,如QQ,飞信,发短信等,但是当你断开一个如注销QQ,会断网,其他不会退出,只不过掉线了,一会又再次自动连上网了,如果你想电脑那样直接插U盘或移动硬盘读取里面的数据,那要看什么手机了,n70,N72必须有PC套装才可以,其他的直接连就可以了,但是你要把存储卡拿下来,用读卡器来读就是U盘了一样了
本回答被提问者采纳
智能手机目前还不具备像电脑一样直接读取优盘或移动硬盘的数据的功能。1、移动硬盘工作需要较大的工作电流,目前手机还不足以提供这么大的工作电流2、智能手机空间有限,目前的优盘接口也无法适应智能手机的USB接口。
完全可以,买条转接线或转接插头。
装个U盘软件就能当U盘使用了。QQ可以后台运行。网络要看系统本身有无缺陷。
可以同时运行几个程序,看你的手机了,智能手机程序开多了容易死机。运行QQ期间可以做别的事情,比如短信、拍照最小化的程序不会断开或暂停与网络的连接
其他5条回答
为您推荐:
其他类似问题
您可能关注的内容
移动硬盘的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。查看: 回复:4
求助,关于USB接口不能读取数据的问题[待解决]
rel="nofollow" href="//my.pcauto.com.cn//fan/"
target="_blank" rel="nofollow" id="follow粉丝
rel="nofollow" href="//my.pcauto.com.cn//pick/"
target="_blank" rel="nofollow" id="fan精华
最后修改IP: 192.168.240.195/61.145.113.113
您好,精华帖至少要有15张图片,文字不少200个字!并且是原创内容,布局合理。
楼主 电梯直达 楼
13版m4,之前可以通过USB接口读取数据,包括U盘上面的音频文件、视频文件,但是最近插上U盘,能够显示读取数据的加载过程,加载完了之后就没有反应了,任何文件都没有显示(U盘中的文件肯定是没有破损的),求解,谢谢,谢谢,谢谢
如果你对以下车友回答满意,请设置一个推荐答案!
相关提问:
申请精华帖
您的申请已经提交,请耐心等待审核
1、审核通常是1-3个工作日 2、审核结果我们会通过系统消息给您答复
申请精华帖
您已经超过申请限制,不可再申请
您的申请连续三次被驳回,已经无法再申请精华帖,谢谢你对我们的支持!如有疑问,可以 投诉/建议&&
申请精华帖
您有发现精华的慧眼,赞一个!
1、我们会在1-3个工作日内完成审核
申请精华帖
此贴已经申请精华中,谢谢您的支持!
1、我们会在1-3个工作日内完成审核
申请精华帖
您好,该帖子经过审核后,发现内容不符合精华要求,无法申请成为精华,谢谢你的支持!
申请精华帖
抱歉,帖子还没达到精华标准
精华帖至少要有15张图片,文字不少于200个字!您的帖子未达到要求,不能申请精华。 查看精华帖标准
rel="nofollow" href="//my.pcauto.com.cn/9436423/fan/"
target="_blank" rel="nofollow" id="follow粉丝
rel="nofollow" href="//my.pcauto.com.cn/9436423/pick/"
target="_blank" rel="nofollow" id="fan精华
最后修改IP: 192.168.240.195/61.145.113.113
不懂,帮顶
rel="nofollow" href="//my.pcauto.com.cn/6874411/fan/"
target="_blank" rel="nofollow" id="follow粉丝
rel="nofollow" href="//my.pcauto.com.cn/6874411/pick/"
target="_blank" rel="nofollow" id="fan精华
最后修改IP: 192.168.240.195/61.145.113.113
任何问题都可以使用排除法去验证解决:1,先怀疑U盘问题,另找一只U盘,播放看看,能放,则可判断之前这只U盘有问题。如果仅仅只有一只U盘,也可能通过格式化这类手段去尝试(刻备份哦)。2,假如换了个新U盘也放不了,那进一步就怀疑是不是线松了?把手套箱拿掉,就可以伸手摸到面板后背了,有一根线是U盘电源插座连到一体机的,摸摸动动紧一下,甚至干脆把一体机拆出来搞更稳当。3,线也折腾过了,还是不行的话,感觉问题就大了,原厂一体机好像U盘播放是唯一的,不能插卡还不能放碟.....所之前面1和2一定要认真严谨,同时期望参解决,若真不能解决到了第3这里,个人只有表示安慰了.....
rel="nofollow" href="//my.pcauto.com.cn//fan/"
target="_blank" rel="nofollow" id="follow粉丝
rel="nofollow" href="//my.pcauto.com.cn//pick/"
target="_blank" rel="nofollow" id="fan精华
最后修改IP: 192.168.240.195/61.145.113.113
感谢版主指点,试试看,谢谢
rel="nofollow" href="//my.pcauto.com.cn//fan/"
target="_blank" rel="nofollow" id="follow粉丝
rel="nofollow" href="//my.pcauto.com.cn//pick/"
target="_blank" rel="nofollow" id="fan精华
最后修改IP: 192.168.240.195/61.145.113.113
原厂一体机在导航卡的旁边位置是可以直接扎进sd卡播放音频、视频的,没有u盘也可以播放音乐。我也找到了问题所在了,之前因为装u盘系统,被格成了ntfs,刚刚转成了fat32,一切就正常了,证明原厂一体机只支持fat32格式的。
只可添加一张图片,多张图片请选高级模式
您需要登录后才可以发帖&&&&&&│&&&&│&&&&
长城M4更多相关问题}

我要回帖

更多关于 fpga直接读取u盘 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信