ドコモの公衆無線LANサービス Mzoneがmopera Uスタンダードなら無料で使える、というので、mopera Uライトから契約変更してみた。
ドコモの手順によればAndroidの場合、SSID:docomoに接続した後、ブラウザ上でログイン処理を行わないといけない、ということになっている。
しかし、Windows系とか他の環境では、その処理も含めて自動的に行えるようになっているらしい。
では、標準ではないだけで、実現する方法があるはず、と探してみたところ、Android Marketで、mzoneconfというアプリがありました。
類似の機能を持つアプリは他にもありますが、mzoneconfの利点は常駐しないアプリで、Androidの無線LAN設定にMzone用の設定を追加してくれるだけ、という非常に割り切った作りである、という点です。
やってることは、手動で設定すると非常にめんどくさいことを、直接設定を書いてしまうことで実現している、という感じなようです。
Androidでは無線LANの設定をLinuxと同様にくwpa_suppilicantを使用して行っています。
Android 2.3の場合、wpa_supplicant ver 0.6.10です。
設定ファイルは、/data/misc/wifi/wpa_supplicant.conf にあります。
mzoneconfで設定を行ったあとの/data/misc/wifi/wpa_supplicant.confは以下のような感じでした。
ctrl_interface=wlan0 ap_scan=2 update_config=1 network={ ssid="自宅のSSID" psk="自宅のWPA-PSKキー" key_mgmt=WPA-PSK priority=1 } network={ ssid="docomo" scan_ssid=1 proto=RSN key_mgmt=IEEE8021X pairwise=NONE group=WEP104 WEP40 auth_alg=OPEN SHARED eap=PEAP identity="ユーザ名-mopera@docomo" password="パスワード" phase2="auth=MSCHAPV2" priority=1000 }
Android側か、無線LAN側か、どちらの要因かはわかりませんが、うちの環境では上記設定では、無線LANを検出しなくなってしまいました。
元との設定差異をみた結果、おそらくは「ap_scan=1」が「ap_scan=2」になったことが原因なのではないかと思い、wpa_supplicant.confをファイルを直接書き換えました。
また、プライオリティが1000って大きすぎ?と感じたので、10としてみました。
ctrl_interface=wlan0 ap_scan=1 update_config=1 network={ ssid="自宅のSSID" psk="自宅のWPA-PSKキー" key_mgmt=WPA-PSK priority=1 } network={ ssid="docomo" scan_ssid=1 proto=RSN key_mgmt=IEEE8021X pairwise=NONE group=WEP104 WEP40 auth_alg=OPEN SHARED eap=PEAP identity="ユーザ名-mopera@docomo" password="パスワード" phase2="auth=MSCHAPV2" priority=10 }
この変更後、再起動を行って、正常に動作することを確認しました。
ちなみに、mzoneconfでは、Mzoneアカウントを使ってのBB モバイルポイント(mobilepoint)および成田空港エアポートネットでの有料ローミングアクセスが利用できます。
その設定を有効にした場合にwpa_supplicant.confに追加される設定は以下の様になっていました。
network={ ssid="mobilepoint" scan_ssid=1 proto=RSN key_mgmt=IEEE8021X pairwise=NONE group=WEP104 WEP40 auth_alg=OPEN SHARED eap=PEAP identity="ユーザ名-mopera@docomo" password="パスワード" phase2="auth=MSCHAPV2" priority=1000 } network={ ssid="NRT-AIRPORT" scan_ssid=1 proto=RSN key_mgmt=IEEE8021X pairwise=NONE group=WEP104 WEP40 auth_alg=OPEN SHARED eap=PEAP identity="ユーザ名-mopera@docomo" password="パスワード" phase2="auth=MSCHAPV2" priority=1000 }