私が達成しようとしているのは、Androidアプリが、wlanを備えたデバイスの範囲内で利用可能なすべてのwlan接続のリストを取得することです(その時点で、デバイスはアクセスポイントです)。次に、そのデバイスに接続するネットワークを伝えたいと思います。ここまでは順調ですね。
Python 経由で openwert デバイスの wlan モジュールにアクセスしようとしています。この [1] python モジュールを使用しています。次のサンプルコードを実行すると
python iwlist.py wlan0 scanning
エラーが発生します
Interface does not support scanning
次に、コードの内部を掘り下げ始めました。実際のエラー メッセージは次のとおりです。
Argument list too long
このエラーはモジュールから発生しています (ファイル iwlibs.py から)。正確なコード スニペット (クラス Iwrange、update()) からのもの:
buff, s = iwstruct.pack_wrq(640)
print "Now comes the error"
status, result = iwstruct.iw_get_ext(self.ifname,
pythonwifi.flags.SIOCGIWRANGE,
data=s)
それが役立つかどうかはわかりませんが、バフ変数もチェックしたところ、0x00とだけ表示されていました(他にもいくつかあるはずですbczはメモリ内のアドレスを示していますが、もちろん間違っている可能性もあります)バッファーはそこで初期化されています)。
したがって、問題が何であるかはわかりませんが、おそらく、返されるものに対してリザーバースペース(またはバッファー?)が小さすぎるようです。これを機能させるために他に何ができるか知っている人はいますか?
もう 1 つ、wireless_tools もダウンロードしたので、iwlist を使用できるようになりました。また、周囲のすべての WLAN ネットワークのリストをスキャンして取得することもできます。ハードウェアは正常に動作しているようですが、Pythonで適切にアクセスしていません