当前位置: 首页 > 面试题库 >

如何在Android Things上安装USB驱动器?

邵展
2023-03-14
问题内容

我正在尝试从 Raspberry Pi 上的 Android Things 应用的USB驱动器中读取文件。我可以像这样扫描已安装设备的列表: __

public static List<File> ScanForFiles(Context context){
    ArrayList<File> files = new ArrayList<>();
    try{
        BufferedReader reader = new BufferedReader(new FileReader("/proc/self/mountinfo"));
        String line;
        while ((line = reader.readLine()) != null) {
            String[] columns = line.split(" ");
            Log.i(TAG, "Mounted: " + columns[4]);
            //files.addAll(getListFiles(new File(columns[4])));
        }
    } catch (Exception ex){
        ex.printStackTrace();
    }

    printFileInformation("/proc/partitions");

    return files;
}

private static void printFileInformation(String fileName){
    Log.i("TitanTV", "Reading contents of " + fileName);

    try{
        BufferedReader reader = new BufferedReader(new FileReader(fileName));
        String line;
        while ((line = reader.readLine()) != null){
            Log.i("TitanTV", line);
        }
    } catch (Exception ex){
        ex.printStackTrace();
    }
}

显示以下输出:

I: Mounted: /
I: Mounted: /dev
I: Mounted: /dev
I: Mounted: /dev/pts
I: Mounted: /dev/memcg
I: Mounted: /dev/cpuctl
I: Mounted: /proc
I: Mounted: /sys
I: Mounted: /sys/fs/selinux
I: Mounted: /sys/fs/pstore
I: Mounted: /acct
I: Mounted: /mnt
I: Mounted: /mnt/runtime/default/emulated
I: Mounted: /mnt/runtime/read/emulated
I: Mounted: /mnt/runtime/write/emulated
I: Mounted: /config
I: Mounted: /data
I: Mounted: /oem
I: Mounted: /gapps
I: Mounted: /storage
I: Mounted: /storage/emulated
I: Mounted: /storage/self
I: Reading contents of /proc/partitions
I: major minor  #blocks  name
I:    1        0       8192 ram0
I:    1        1       8192 ram1
I:    1        2       8192 ram2
I:    1        3       8192 ram3
I:    1        4       8192 ram4
I:    1        5       8192 ram5
I:    1        6       8192 ram6
I:    1        7       8192 ram7
I:    1        8       8192 ram8
I:    1        9       8192 ram9
I:    1       10       8192 ram10
I:    1       11       8192 ram11
I:    1       12       8192 ram12
I:    1       13       8192 ram13
I:    1       14       8192 ram14
I:    1       15       8192 ram15
I:  179        0    7761920 mmcblk0
I:  179        1      65536 mmcblk0p1
I:  179        2       1024 mmcblk0p2
I:  179        3       1024 mmcblk0p3
I:  179        4      32768 mmcblk0p4
I:  179        5      32768 mmcblk0p5
I:  179        6     524288 mmcblk0p6
I:  179        7     524288 mmcblk0p7
I:  179        8         64 mmcblk0p8
I:  179        9         64 mmcblk0p9
I:  179       10       1024 mmcblk0p10
I:  179       11      32768 mmcblk0p11
I:  179       12      32768 mmcblk0p12
I:  179       13     262144 mmcblk0p13
I:  179       14     262144 mmcblk0p14
I:  179       15    2683736 mmcblk0p15
I:    8        0    7847935 sda
I:    8        1    7845888 sda1

但是,我的拇指驱动器不在列表中。所以我想我需要以某种方式安装它。如何安装拇指驱动器并访问其中的文件?


问题答案:

仅亚行解决方案

到目前为止,USB驱动器似乎尚未自动安装。为了使您的代码正常工作,我必须手动安装它。

如您所见(从/proc/partitions)在/proc分区中,USB驱动器被检测为sda

ADB安装

  • 制作要挂载的目录

    mkdir /mnt/usb
    
  • 安装设备

    mount -t vfat -o rw /dev/block/sda1 /mnt/usb
    

现在,您应该能够通过ADB和应用程序列出(和管理)USB驱动器上的文件(/mnt/usb也将被记录)。



 类似资料:
  • 问题内容: 我想知道如何检测USB驱动器。但是我想知道我们是否可以用来检查USB驱动器。我读过的帖子确实解释了如何使用,但我不太了解。如果有人可以提供示例,那就太好了。谢谢。 问题答案: 您可以使用File.listRoots()方法。 这里的问题是,您将需要一个名称或其他信息来将驱动器标识为USB驱动器。否则,您无法使用这种方法告诉普通驱动器和USB驱动器。

  • 我在命令终端上输入了以下命令,以便在Macbook Pro的XAMPP上与PHP一起使用“MongoClient”: brew安装wget brew安装autoconf sudo/Applications/XAMPP/xamppfiles/bin/pecl安装mongo 添加了扩展名=mongo。php也是如此。ini/Applications/XAMPP/xamppfiles/etc 重新启动A

  • 打开:sudo/Applications/XAMPP/xamppfiles/bin/pecl安装mongo 以下是我得到的错误: sudo: setrLimited(8):无效参数警告:不建议使用通道:///mongoDB警告:通道pecl.php.net已经更新了它的协议,使用PECL通道更新pecl.php.net更新PECL/mongo需要PHP(版本

  • 问题内容: 我已经为嵌入式Linux项目编写了一个应用程序,并且希望用户插入USB驱动器时,我的应用程序显示特定菜单。我正在用Qt用C ++编写应用程序。 我的系统没有d-bus,但使用的是udev。在我看来,udev是执行此检测的“正确”方法,但似乎很复杂。 谁能指出我正确的方向来开始这一工作?有没有udev的方法吗?如果没有,是否可以使用udev的“入门”指南?我真的不需要太多功能,只需一种方

  • 我试图在PHP安装mongoDB驱动程序。我使用wamp服务器与PHP版本5.5.12.我试了很多次,但不知道我做错了什么。以下是我所做的: 第一步:我从这个链接下载了mongoDB驱动程序包:http://pecl.php.net/package/mongo/1.5.5/windows我在PHP 5.5选项卡下下载了5.5非线程安全(NTS)x64。 第2步:我解压缩下载的文件并复制php_mo

  • 我需要使用扩展测试Firefox。我想自动化测试并访问几个网站。 我安装了Selenium,它在中打开。然而,扩展并不存在。我可以从手动安装它,但问题是我希望Selenium测试在扩展已经存在时启动gecko驱动程序。怎么做?如何在中永久安装扩展,这样当我从selenium启动时它就在那里了? 编辑:我也试着从火狐扩展网站安装扩展(添加到浏览器)。它被添加,但是一旦我关闭壁虎窗口,扩展在下一次运行