1

これは一種の奇妙な質問ですが、それが可能であることはわかっています。

特定の周波数でパケットをブロードキャストしようとしていますが、アプリケーションを実行している電話がこれらのパケットを受信できるようにしたいと考えています。これを行うために電話をネットワークに接続する必要はありませんが、単に Wi-Fi をオンにするだけです。ブロードキャスト デバイスは、電話機から情報を取得する必要はなく、UDP と同様に、電話機へのすべてのパケットの配信を保証する必要もありません。

どこから始めればよいですか?電話をルート化せずにこれは可能ですか。これを行うことに対するある種のFCC規制はありますか(標準のwifiスペクトルを介して)。

ルーターが電話に接続可能であることを伝える方法とまったく同じであるため、これが可能であることはわかっています。ご意見をお寄せいただきありがとうございます。

4

1 に答える 1

0

同様の手法が存在する可能性がありますが、私は iOS 開発に精通していません。

ルートなし

ただし、Android では粗粒度および/または細粒度の位置情報の許可が必要です

を使用WifiManager.getScanResults()して、ワイヤレス ルーターのブロードキャストをスキャンできます。

結果には、ネットワークの「名前」(SSID) とルーターの MAC アドレス (BSSID) が含まれます。これらのパケットをブロードキャストし、データをこれらのフィールドにエンコードできます。

とはいえ、パケットごとに 38 バイト ( 32 SSID バイト+ 6 MAC アドレス バイト)を取得するため、メッセージが短いことを願っています。

はい、一部の MAC アドレスは特殊または無効ですが、ブロードキャストだけで実際には使用していない場合でも、データを送信できます。

ルート付き

ワイヤレス チップセットとドライバーのサポートによっては、デバイスを「モニター モード」にして、未加工のパケット データにアクセスできる場合があります。

主な欠点は、公式のサポートがないことです。

Google 検索でこれを行うハックな方法を見つけることができるかもしれませんが、すべての (またはほとんどの) デバイスで動作する普遍的なソリューションを見つけることができませんでした。

于 2015-12-08T00:41:57.483 に答える