How to mount a USB drive in the Android Things app?

I am trying to read files from a USB drive for the Android Things app on a Raspberry Pi. I can scan the list of installed devices as follows:

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();
    }
}

Displays the following result:

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

- . , - . ?

+2
1

, USB- . , .

( /proc/partitions) /proc, USB- sda.

ADB

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

( ) USB- ADB, (/mnt/usb ).

, , Runtime.getRuntime().exec(...). : , "" su, (. su).

+2

Source: https://habr.com/ru/post/1676731/


All Articles