4
私のアプリケーションでは、接続されているすべてのデバイスのMACアドレスのリストを収集するために、ローカルサブネット(192.168.1。*)をスキャンする必要があります。Androidサブネットスキャン
私は現在、次の戦略を使用する:
- 開始を同時に255 pingがプロセスの終了コードを
- 近い入力ストリームを収集し、破壊するために返されるプロセスのそれぞれに
Runtime.exec("ping -c 1 <addr>")
- 使用
waitFor()
とコマンドそれらを - ファイルを読み取り、MACアドレスを解析します。
ほとんどの場合、これは非常にうまく動作し、高速スキャンを提供します。
しかし、いくつかのデバイス(アンドロイド1.5、時には4.0以上)では、プロセスの作成時に(いくつかのデバイスが正常に起動した後)実行が停止し、実行中のスレッドを強制終了する方法がありません。
この問題を解決するために何かできることはありますか?あまり時間がかからない他の戦略もありますか?