Bonjour tout le monde,

ça fait une semaine que je suis bloqué.

Je travaille sur ORANGE PI 3G IOT avec une Android 5.1

Pour utiliser le GPIO, le chemin est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
/sys/devices/virtual/misc/mtgpio/pin
Pour changer l'état de pin 41 à 1 par exemple, on fait ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
echo 'wdout 141 1'>/sys/devices/virtual/misc/mtgpio/pin
Tout marche depuis mon PC Windows 10 via le ADB SHELL.

Mais ça ne marche pas depuis mon Application Android développer par ANDROID STUDIO en utilisant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
public void onClickOn(View view) { // evenement click bouton
    String[] cmd = {"/system/bin/sh", "-c", "echo '-wdout 141 1' > /sys/devices/virtual/misc/mtgpio/pin"};
    try {
         Runtime.getRuntime().exec(cmd);
    } catch (IOException e) {
         e.printStackTrace();
    }
}
Si je fais la commande de permission "chmod 777" dans mon ADB SHELL (PC Windows):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
adb shell chmod 777 /sys/devices/virtual/misc/mtgpio/pin
la commande dans mon application Android ci-dessus (onClickOn) marche sans soucis.

Mais cette commande chmod 777 ne marche pas quand je l’intègre dans mon application ANDROID,
Il n'a aucun effet (pas d'erreur pendant le débogage):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
 
   String [] cmd = new String[]{"/system/bin/sh", "-c", "chmod 777 /sys/devices/virtual/misc/mtgpio/pin"};
   try {
         Runtime.getRuntime().exec(cmd);
   } catch (IOException e) {
         e.printStackTrace();
   }
}
Pouvez vous m'aider ou est l'erreur, pourquoi je ne peux pas modifier le fichier "/sys/devices/virtual/misc/mtgpio/pin" depuis mon application android?

Merci d'avance.