Требуется написать файл с помощью команды echo в любом месте, например, "/ sys / bus / i2c / devices / 4-0024 / command" здесь command - это имя файла, где значение длябыть написанным.
Я попробовал приведенный ниже код, но он не работает
private void writeCommand(String data) {
try {
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("echo "+data+" > "/sys/bus/i2c/devices/4-0024/command");
BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (Throwable t) {
t.printStackTrace();
}
}
здесь команда может быть любой строкой.Позже я получил этот ответ , поэтому я попробовал то же самое, но не повезло.
ниже приведен код для того же самого:
private void writeCommand(String data) {
try {
Runtime rt = Runtime.getRuntime();
String[] cmnd = {"sh", "-c", "echo " + data+ ">" /sys/bus/i2c/devices/4-0024/command"};
Process proc = rt.exec(cmnd);
BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (Throwable t) {
t.printStackTrace();
}
}
Примечание 1: Мне нужноиспользовать команду оболочки только для записи файла, Не использовать FileWriter
Примечание 2. Мое приложение является системным приложением, поэтому оно имеет все привилегированные разрешения, включая «WRITE_EXTERNAL_STORAGE»
Примечание 3: Я дал разрешение на запись в Linux с помощью chmod 777
Примечание 4: Android Polux Sepolicy отключен.
Примечание 5: Если я использую ту же команду в командной строке, она записывает данные вфайл
Пожалуйста, дайте мне знать, как этого добиться.