Android搭載端末に接続したいユニコード文字列(例:「ԱԲԳԵԶԷԸԹԺԻԼԵԶԷԸԹԺԻԼ」)のSSIDを持つWi-Fi APがあります。私のデバイス(Nexus One)がホットスポットを検出すると、SSIDは "܍܍܍܍܍܍܍܍"のようになり、認識できません。どのようにこれを修正するための任意のアイデア?Androidでユニコード文字のwifi SSIDを検出できないのはなぜですか?
答えて
この問題を解決するためのアプリ「WiFi Connection Manager」を作成しました。しかし、私はアルメニア語を理解していないので、結果が正しく表示されないことがあります。私のアプリで名前が正しく表示されなくても、アクセスポイントに接続することはできます。
Android Marketにあります。
download it hereでもかまいません。
恐ろしいです!特殊文字の問題をどのように克服しましたか?私は基本的なビットシーケンスの表現としてユニコード文字を使用しようとしているので、私は自分のアプリケーションにこれを組み込むことができる必要があります。 (これは私の師匠のプロジェクトです。私はあなたのアプリに競合する人はいないと約束します。) – Ben
生のスキャン結果を得るには、wifiサービスに直接対処する必要があります。結果はデバイスやドライバとは異なります。 1つのデバイスでのみ動作する必要がある場合は、時間がかかりません。 – roamingsoft
私は正確にどのように賞品を提供しているのかを尋ねています:http://stackoverflow.com/questions/20277425/non-ascii-ssids-in-android –
802.11パケットのSSIDフィールドは32バイトです。私は、Androidデバイス(他のデバイスと同様)が各バイトを個々の文字として解釈することを選択していると信じています(おそらくこれも802.11標準の一部です)。このため、SSIDは32文字に制限されています。
各文字を表すのに1バイトしか使用していないので、使用するビットは8ビットです。 2の補数系(おそらく使用される)を使うと、表現できる最高の数は127(2 ^(8-1))です。
標準のASCII文字は、1バイトで表すことができ、それぞれ0〜127の10進数値に対応します。一方、Unicode文字は、1〜4バイトのいずれかを表す必要があります。したがって、SSIDフィールドに4バイトのUnicode文字を含むように802.11仕様を変更した場合、SSIDには最大8文字しか使用できません。私は、誰かが小さいプールから32文字を好むことを決めたラインのどこかに、より大きなプールから8文字以上あると推測します。
デバイス上にカスタムドライバを書き込んで、32バイトのSSIDフィールドをUnicode文字として解釈することで回避できますが、推奨しません。コメントで述べたように
、Unicode文字はので、私の以前の答えは有効ではありませんUTF-8としてエンコードすることができます。
"最大8文字あなたのSSIDで " - 最大32です。1-4バイトが使用されています - 東洋言語の場合は通常2 –
も指定できます:http://standards.ieee.org/getieee802/download/802.11-2012。 pdf –
UnicodeがUTF-8でエンコードされている場合、Unicode文字をバイト配列に格納することが可能であることに注意してください。したがって、上記の答えは実際には有効ではありません。 –
- 1. Select2フレームワークでユニコード文字が見つからないのはなぜですか?
- 2. PHPで大文字が検出されないのはなぜですか?
- 3. htmlに特殊なユニコード文字を使用できないのはなぜですか?
- 4. ユニコード文字でキャンバスのfillTextを理解できない問題
- 5. ユニコード文字列のロケールをC++で検出する
- 6. なぜ文字セットを変更できないのですか?
- 7. なぜ文字列を分割できないのですか?
- 8. MonoTouch WIFI SSID
- 9. wifi SSIDデータをPythonで解析する
- 10. 変更WiFiホットスポットのSSIDとパスワード私のAndroidアプリケーションで
- 11. Android Wifiと同じSSIDでAP経由でローミング
- 12. AndroidでEstimoteビーコンが検出されないのはなぜですか?
- 13. Scalaで印刷できない文字を検出する
- 14. Groovyがユニコード文字列を出力する方法を理解できない
- 15. ストリーム内のマップできない文字を検出します。
- 16. ユニコード文字列のas.factor()がすべてのオペレーティングシステムで異なる結果を返すのはなぜですか?
- 17. pyQtとQTextEdit:ユニコード文字が表示されるのはなぜですか?
- 18. json.stringifyの出力は1023文字です...なぜですか?
- 19. 制約で文字列を使用できないのはなぜですか?
- 20. IO.File.ReadAllText()文字列でString.Replace()を実行できないのはなぜですか?
- 21. なぜjQuery e.whichは入力キーを検出できないのですか?
- 22. E-P-I-CがPadWalkerを検出できないのはなぜですか?
- 23. HerokuがNode.jsビルドパックを検出できないのはなぜですか?
- 24. ロケーションのユニコード文字は何ですか?
- 25. 複数の文字列を印刷できないのはなぜですか?
- 26. この文字列をコメント化できないのはなぜですか?
- 27. CloudSearchがファイル名テキストフィールドで部分文字列一致を検出しないのはなぜですか?
- 28. Set-ADUserコマンドで数値文字列で文字列を使用できないのはなぜですか?
- 29. ブルートゥースデバイスを検出できないXamarin Android
- 30. Androidでリソース名に大文字を使用できないのはなぜですか?
SSIDにa-zを使用すると、すべての種類の問題が発生する可能性があります。 – zapl
@zapl「すべての種類の問題」を引き起こすのはユニコードではありませんが、一部のデバイスではそれがサポートされていません。メーカーがサポートしない方が簡単で安いからです。 – Rolf
@RolfはまだUnicodeがssidsの悪いアイデアであることを意味します – zapl