Intereting Posts
Правило Threading AsyncTask. Может ли оно действительно использоваться только один раз? Как получить доступ к файловой системе Android из командной строки Windows 7 через USB Emulator.exe перестает работать? Есть ли более простой способ анализа XML в Java? Правильный способ получения DisplayMetrics: getResources () или getWindowManager () Можете ли вы развернуть устройство через Gradle из командной строки Как получить данные из службы в действие Получить PID процесса, чтобы убить его, не зная его полного имени Слушатель для просмотра виджета ViewFlipper Как вертикально прокручивать активность в Android Черный экран перед тем, как заставка появится в android Скрыть кнопку микрофона Виртуальная клавиатура Android Подпись метода GetStaticMethodId для открытого статического MyClass myMethod () Запустить программу андроида как root Android: образец микрофона без записи, чтобы получить живую амплитуду / уровень?

Как подключить WiFi Wi-Fi к adhoc Wi-Fi?

Приветствую,

Я новичок в системе Android. Правильно ли это, что Android 2.2.1 WIFI обнаруживает беспроводную сеть не-ad hoc? Мне было интересно, есть ли способ подключить мой Android к сети ad hoc через мой ноутбук.

Ваш ответ будет высоко оценен.

Спасибо, Кирилл Х.

Solutions Collecting From Web of "Как подключить WiFi Wi-Fi к adhoc Wi-Fi?"

Вы правы, что в настоящее время это не поддерживается на самом деле в Android, хотя Google заявляет, что это произойдет с тех пор, как Android был официально запущен.

Хотя они не поддерживаются, аппаратные средства на каждом устройстве Android, выпущенные на сегодняшний день, поддерживают его. Он просто отключен в программном обеспечении, и вам нужно будет включить его, чтобы использовать эти функции.

Однако, это довольно легко сделать, но вам нужно быть root, и особенности могут быть немного разными между различными устройствами. Лучшим источником для получения дополнительной информации об этом, были бы разработчики XDA: http://forum.xda-developers.com/forumdisplay.php?f=564 . Большинство существующих решений основаны на замене wpa_supplicant, и это метод, который я бы рекомендовал по возможности на вашем устройстве. Для получения дополнительной информации см. http://szym.net/2010/12/adhoc-wifi-in-android/ .

Обновление : прошло уже несколько лет, и всякий раз, когда мне нужно подключение к сети ad hoc на моем телефоне, я использую CyanogenMod . Он дает вам как программный, так и скриптовый доступ к этим функциям, а также возможность создавать специальные (ibss) сети в меню настроек WiFi.

Если вы специально хотите использовать беспроводную сеть ad hoc , то ответ Энди кажется вашим единственным вариантом. Однако, если вы просто хотите поделиться своим интернет-соединением своего ноутбука с помощью Wi-Fi любыми средствами, то у вас есть как минимум еще два варианта:

  1. Используйте свой ноутбук в качестве маршрутизатора для создания точки доступа Wi-Fi с использованием Virtual Router или Connectify . Здесь можно найти хороший набор инструкций.
  2. Используйте протокол Wi-fi Direct , который создает прямое соединение между любыми устройствами, которые его поддерживают, хотя поддержка Android-устройств ограничена *, а в Windows эта функция кажется скорее Windows 8.

* Некоторые телефоны с Android 2.3 имеют собственные расширения ОС, которые поддерживают Wi-Fi Direct (в основном новые телефоны Samsung), но Android 4 должен полностью поддерживать это ( источник ).

Я заметил кое-что интересное: на моем телефоне 2.3.4 я не вижу SSID Ad / HH в меню «Настройки»> «Беспроводные сети». На Acer A500 под управлением 4.0.3 я вижу их, с префиксом (*)

Однако в следующем фрагменте кода, который я адаптировал (не могу вспомнить источник, извините!), Я вижу, что Ad Hoc отображается в Wifi Scan на моем телефоне 2.3.4. Я все еще ищу, чтобы на самом деле подключиться и создать сокет + input / outputStream. Но, здесь я иду:

public class MainActivity extends Activity { private static final String CHIPKIT_BSSID = "E2:14:9F:18:40:1C"; private static final int CHIPKIT_WIFI_PRIORITY = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button btnDoSomething = (Button) findViewById(R.id.btnDoSomething); final Button btnNewScan = (Button) findViewById(R.id.btnNewScan); final TextView textWifiManager = (TextView) findViewById(R.id.WifiManager); final TextView textWifiInfo = (TextView) findViewById(R.id.WifiInfo); final TextView textIp = (TextView) findViewById(R.id.Ip); final WifiManager myWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); final WifiInfo myWifiInfo = myWifiManager.getConnectionInfo(); WifiConfiguration wifiConfiguration = new WifiConfiguration(); wifiConfiguration.BSSID = CHIPKIT_BSSID; wifiConfiguration.priority = CHIPKIT_WIFI_PRIORITY; wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); wifiConfiguration.allowedKeyManagement.set(KeyMgmt.NONE); wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); wifiConfiguration.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); wifiConfiguration.status = WifiConfiguration.Status.ENABLED; myWifiManager.setWifiEnabled(true); int netID = myWifiManager.addNetwork(wifiConfiguration); myWifiManager.enableNetwork(netID, true); textWifiInfo.setText("SSID: " + myWifiInfo.getSSID() + '\n' + myWifiManager.getWifiState() + "\n\n"); btnDoSomething.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { clearTextViews(textWifiManager, textIp); } }); btnNewScan.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { getNewScan(myWifiManager, textWifiManager, textIp); } }); } private void clearTextViews(TextView...tv) { for(int i = 0; i<tv.length; i++){ tv[i].setText(""); } } public void getNewScan(WifiManager wm, TextView...textViews) { wm.startScan(); List<ScanResult> scanResult = wm.getScanResults(); String scan = ""; for (int i = 0; i < scanResult.size(); i++) { scan += (scanResult.get(i).toString() + "\n\n"); } textViews[0].setText(scan); textViews[1].setText(wm.toString()); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } 

Не забывайте, что в Eclipse вы можете использовать Ctrl + Shift + [letter O], чтобы заполнить отсутствующие импорт …

И мой манифест:

  <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.digilent.simpleclient" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 

Надеюсь, это поможет!

Если в качестве одного из доступных сетевых адаптеров имеется мини-адаптер Microsoft Virtual WiFi Mini, вы можете сделать следующее:

  • Запустить Windows Command Processor (cmd) в качестве администратора
  • Тип: netsh wlan set hostednetwork mode=allow ssid=NAME key=PASSWORD
  • Затем: netsh wlan start hostednetwork
  • Откройте «Панель управления \ Сеть и Интернет \ Сетевые подключения»
  • Щелкните правой кнопкой мыши активный сетевой адаптер (тот, который вы используете для подключения в Интернете), затем нажмите «Свойства»
  • Затем откройте вкладку «Общий доступ»
  • Установите флажок «Разрешить другим пользователям сети подключаться …» и выберите свой мини-адаптер WiFi
  • После завершения введите: netsh wlan stop hostednetwork

Это оно!

Источник: Как подключить Android-телефон к сети ad-hoc без программного обеспечения.

Вы правы, но обратите внимание, что вы можете сделать это наоборот – используйте Android Wifi tethering, который настраивает телефон в качестве базовой станции и подключается к упомянутой базовой станции с ноутбука.