web-dev-qa-db-ja.com

Android AppからWiFiネットワークに接続されているすべてのデバイスを検出する方法

WiFiネットワークをスキャンし、接続されているすべてのデバイスのリストを表示する必要があるアプリを開発しています。

ユーザーがデバイスをタップすると、アプリはその特定のデバイスのすべてのハードウェア情報を表示する必要があります。ここで言うハードウェアとは、RAM、ストレージメディア、ストレージ容量、デバイス名、デバイスIPアドレスなどです。

現在、このデバイスは、xbox、Linux/Windowsを搭載したラップトップ、iPhoneなどの携帯電話、Andoridベースのスマートフォン、さらにはプリンターのようなものです。

WiFiネットワークをスキャンし、接続されているすべてのデバイスをクエリ/検出するにはどうすればよいですか?

特定のデバイスで実行されているOSに関係なく、特定のデバイスのハードウェアのリストを取得するために使用する必要があるプロトコルは何ですか?

30
Yogi Yang 007

Network Discovery githubプロジェクトが役に立つかもしれません。 IPアドレスとMACアドレスを使用してWiFiに接続しているすべてのユーザーを一覧表示し、開いているポート、デバイス名、pingなどの情報も収集します。

3
Deplover

requestPeers of WifiP2pManager を確認します

ドキュメントごとに PeerListListener を返します WifiP2pDeviceList を返します WifiP2pDevice のリストを保持し、deviceAddress、deviceName、primaryDeviceType、secondaryDeviceType、statusおよびその他の属性を保持します。

6
Javanator

私の意見では、Wi-Fiピアツーピアを使用できます

https://developer.Android.com/guide/topics/connectivity/wifip2p.html

「Wi-Fiピアツーピア(P2P)では、Android 4.0(APIレベル14)または適切なハードウェアを備えた以降のデバイスは、中間アクセスなしでWi-Fiを介して互いに直接接続できます。ポイント(AndroidのWi-Fi P2Pフレームワークは、Wi-Fi AllianceのWi-Fi Direct™認定プログラムに準拠しています。これらのAPIを使用すると、各デバイスがWi-Fi P2Pをサポートするときに他のデバイスを検出して接続し、高速で通信できますBluetooth接続よりもはるかに長い距離での接続。これは、マルチプレイヤーゲームや写真共有アプリケーションなど、ユーザー間でデータを共有するアプリケーションに役立ちます。

0
Aditya Rohilla