Android - Ethernet - Программно

Я занимаюсь разработкой приложения для Android, которое будет использоваться пользовательскими устройствами, которые будут иметь поддержку Ethernet (а также Wi-Fi).

Приложение должно включить настройку активности для Ethernet.

ОБРАТИТЕ ВНИМАНИЕ, что эти настройки должны запускаться приложением, а не настройками Android, поскольку приложение будет работать только на устройстве, а пользователь не будет иметь доступа к Android, работающему в фоновом режиме.

Пользователь должен иметь возможность: 1. ВКЛЮЧИТЬ / ОТКЛЮЧИТЬ Ethernet 2. Выбрать DHCP или STATIC 3. Если выбран STATIC - установить IP, шлюз

Проблема в том, что я не могу получить доступ к android.net.ethernet программно, и нет объяснения этой проблеме в Интернете.

Поэтому, если кто-то сделал что-то подобное, помогите мне выбрать правильное направление.

Благодарю.

1 ответ

Я знаю, что уже очень поздно, но это может помочь кому-то еще.

У меня были некоторые требования, которые вы упомянули для моего приложения для Android. Вот как я добился некоторых из пунктов

1. ВКЛЮЧИТЬ / ОТКЛЮЧИТЬ Ethernet

// Включить Ethernet

 ifconfig eth0 up

// Отключаем Ethernet

 ifconfig eth0 down

3. Если выбран STATIC - установить IP, шлюз

Запустите эти команды из кода Java.

su -c ifconfig eth0 172.19.10.105 netmask 255.255.255.0 up
route add default gw 172.19.10.2 dev eth0

Вы можете выполнить эти команды, используя следующий код.

Вот command переменная является одной из команд, упомянутых выше.

                Process p;
                try {
                    p = Runtime.getRuntime().exec(command);
                    p.waitFor();
                    BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));

                    String line = "";
                    while ((line = reader.readLine())!= null) {
                        output.append(line + "n");
                    }

                } catch (Exception e) {
                    e.printStackTrace();
                }
                String response = output.toString();
Другие вопросы по тегам