8

我想编写一个带有 UI Button Read/Write 的 Android 应用程序,它执行sysfs readsysfs write.

我找到了以下 java.io.RandomAccessFile 的示例代码。

    package com.tutorialspoint;

    import java.io.*;

    public class RandomAccessFileDemo {

       public static void main(String[] args) {
          try {
             // create a new RandomAccessFile with filename test
             RandomAccessFile raf = new RandomAccessFile("c:/test.txt", "rw");

             // write something in the file
             raf.writeUTF("Hello World");

             // set the file pointer at 0 position
             raf.seek(0);

             // read the first byte and print it
             System.out.println("" + raf.read());

             // set the file pointer at 4rth position
             raf.seek(4);

             // read the first byte and print it
             System.out.println("" + raf.read());
          } catch (IOException ex) {
             ex.printStackTrace();
          }

       }
    }

有人可以告诉我如何使用 Android sdk 构建此代码吗?

4

1 回答 1

6

首先,确保您拥有该 sysfs 节点的权限(如果您正在开发用户应用程序,通常您没有)。

其次,我会说通常您不必直接从 Android 应用程序与 sysfs 节点对话。在应用程序下面有 Android 框架和 HAL 级别,它们为您完成了所有抽象。

由于不确定您将要做什么,这是我从 Android LightsService 获取的一个示例,它直接与 sysfs 节点对话,这可能对您有所帮助。

216        private static final String FLASHLIGHT_FILE = "/sys/class/leds/spotlight/brightness";
...
236        try {
237                FileOutputStream fos = new FileOutputStream(FLASHLIGHT_FILE);
238                byte[] bytes = new byte[2];
239                bytes[0] = (byte)(on ? '1' : '0');
240                bytes[1] = '\n';
241                fos.write(bytes);
242                fos.close();
243            } catch (Exception e) {
244                // fail silently
245            }
246        }
于 2013-07-19T00:11:42.473 回答