Обнаружение устройств Android, подключенных к Wi-Fi - PullRequest
4 голосов
/ 09 марта 2011

Я хочу создать приложение для Android, которое подключается к сети Wi-Fi, скажем, SSID сети = "ABC". Предположим, что оно подключено к ABC Wi-Fi.После подключения к ABC я бы хотел, чтобы мое приложение отображало ips всех устройств Android, подключенных к одной и той же сети Wi-Fi ABC.Как я могу этого достичь?Спасибо

Ответы [ 2 ]

4 голосов
/ 08 июня 2011

Проверьте файл: / proc / net / arp на вашем телефоне.

У него есть адреса ip и MAC всех других устройств, подключенных к той же сети.Однако я боюсь, что вы не сможете различить, являются ли они телефонами Android или нет.

1 голос
/ 09 марта 2011

Вы захотите использовать tcpdump, чтобы перевести сетевую карту в смешанный режим, а затем перехватывать пакеты, чтобы определить, какие другие клиенты находятся в вашей сети.

Как использовать tcpdump на Android: http://source.android.com/porting/tcpdump.html

Вы можете запускать команды в своем коде так:

try {
    // Executes the command.
    Process process = Runtime.getRuntime().exec("/system/bin/ls /sdcard");

    // Reads stdout.
    // NOTE: You can write to stdin of the command using
    //       process.getOutputStream().
    BufferedReader reader = new BufferedReader(
            new InputStreamReader(process.getInputStream()));
    int read;
    char[] buffer = new char[4096];
    StringBuffer output = new StringBuffer();
    while ((read = reader.read(buffer)) > 0) {
        output.append(buffer, 0, read);
    }
    reader.close();

    // Waits for the command to finish.
    process.waitFor();

    return output.toString();
} catch (IOException e) {
    throw new RuntimeException(e);
} catch (InterruptedException e) {
    throw new RuntimeException(e);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...