Как это водится в любом не-опенсорс продукте, в Андроиде есть вещи, которые невозможно понять и объяснить логически. Один из самых раздражающих примеров:
отсутствие поддержки ad-hoc wifi (например, у меня дома для доступа в интернет через Wi-Fi используется ноутбук, подключённый к Beeline).
Впрочем, в таких случаях народ не сидит на месте, а пытается решить проблему своими силами. Гугль даст вам немало рецептов на эту тему, но ИМХО самым действенным и безопасным методом является правка конфигурационного файла wpa_supplicant.conf:
- скачиваем файл к себе на компьютер:
adb pull /data/misc/wifi/wpa_supplicant.conf
- Правим файл: добавляем такие строки:
eapol_version=2
ap_scan=2
network={
ssid="ADHOCnet"
scan_ssid=1
key_mgmt=NONE
priority=1
mode=1
# использовать, если установлен WEP-пароль
wep_key0="use this param if needed"
}
- сгружаем файл назад:
adb push wpa_supplicant.conf /data/misc/wifi/
- поправляем права:
adb shell chmod 666 /data/misc/wifi/wpa_supplicant.conf
(Трёх шестёрок бояться не нужно. Это всего лишь восьмеричное число.)
Ну а если Ваш кунг-фу как никогда силён, можете зайти на андроид и сделать всё прямо там, например, редактором vi.
Добавлено Чт дек 27 11:49:13 ALMT 2012:
Действительно, практика показала, что этот рецепт работает не всегда. Кроме диверсии с неподдержкой Ad-hoc в пользовательском интерфейсе (что обходится приведённым выше рецептом), бывает ещё "вырезанние" поддержки Ad-hoc из бинарника
wpa_supplicant.
Конечно, если обойдётся только правкой
wpa_supplicant.conf, это можно считать везением. Мне повезло дважды: на Samsung i5500 и RoverPad 3WT70 (на прошивке 2.3beta).
Cлучай с дефектным
wpa_supplicant тяжёлый, и тут надо либо
- искать исправленные бинари wpa_supplicant в форумах
- брать патчи, и перекомпилировать самому
по пункту первому могу дать некоторые рекомендации (
НЕКОТОРЫЕ ИЗ НИХ ОЧЕНЬ ОПАСНЫЕ!):
- Конечно, идеально взять файл, который сделан или проверен для Вашего гаджета и именно той прошивки, которая у Вас стоит. Вот очень правильный, "наш" ресурс.
- Если "готовенького" нет, то можно попробовать подобрать из того, что найдёт для Вас Google (типа такого запроса)
- перед установкой можно проверить:
adb push wpa_supplicant /data/local
adb shell chmod 755 /data/local/wpa_supplicant
adb shell /data/local/wpa_supplicant -v
- И, таки, установить (примерно так, но если не знаете точно, что делают эти команды, НЕ ДЕЛАЙТЕ ТАК!):
adb remount
adb shell
cd /system/bin
cp wpa_supplicant wpa_supplicant.ORIG
cat /data/local/wpa_supplicant > wpa_supplicant
удачи!
Добавлено Пт дек 28 17:15:34 ALMT 2012:
И, наконец, решение OVERKILL, если ничего больше не помогает, а Ad-hoc нужен любыми средствами, то можно обойти этого гадкого
wpa_supplicant-а:
- добавить точку доступа в wpa_supplicant.conf, как написано выше
- adb shell iwconfig wlan0 mode Ad-hoc key "s:use this param if needed" essid "ADHOCnet"
Чуть погодя dhcp должен сам получить адрес и всё заработает!