android - servicios - si activas la búsqueda de redes wifi huawei
¿Cómo conectar el wifi de Android a wifi adhoc? (5)
Está en lo cierto, pero tenga en cuenta que puede hacerlo al revés: use el anclaje de Android WiFi que configura el teléfono como una estación base y conéctese a dicha estación base desde la computadora portátil.
Saludos,
Soy nuevo en el sistema Android. ¿Es correcto, el android 2.2.1 WIFI solo detecta una red inalámbrica no ad hoc? Me preguntaba si hay una manera de conectar mi android a una configuración de red ad hoc desde mi computadora portátil.
Su respuesta será altamente apreciada.
Gracias, Cyril H.
Me di cuenta de algo interesante aquí: en mi teléfono 2.3.4 no puedo ver AP / AdHoc SSID en el menú Configuración> Conexiones inalámbricas y redes. En un Acer A500 con 4.0.3 los veo, prefijado por (*)
Sin embargo, en el siguiente fragmento de código que he adaptado (no puedo recordar la fuente, ¡lo siento!) Veo aparecer el Ad hoc en la exploración Wifi en mi teléfono 2.3.4. Todavía estoy buscando conectarme y crear un socket + input / outputStream. Pero, aquí tienes:
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;
}
No olvide que en Eclipse puede usar Ctrl + Shift + [letra O] para completar las importaciones que faltan ...
y mi manifiesto:
<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>
¡Espero que ayude!
Si desea utilizar específicamente una red inalámbrica ad hoc , entonces la respuesta de Andy parece ser su única opción. Sin embargo, si solo desea compartir la conexión a Internet de su computadora portátil a través de Wi-Fi utilizando los medios necesarios, entonces tiene al menos dos opciones más:
- Use su computadora portátil como un enrutador para crear un punto de acceso wifi usando Virtual Router o Connectify . Un buen conjunto de instrucciones se puede encontrar here .
- Utilice el protocolo Wi-Fi Direct , que crea una conexión directa entre los dispositivos que lo admiten, aunque con dispositivos Android la compatibilidad es limitada * y con Windows, la función parece ser solo Windows 8.
* Algunos teléfonos con Android 2.3 tienen extensiones propietarias del sistema operativo que permiten Wi-Fi Direct (en su mayoría teléfonos Samsung más nuevos), pero Android 4 debe ser totalmente compatible con esta ( source ).
Si tiene un adaptador de minipuerto de Microsoft Virtual WiFi como uno de los adaptadores de red disponibles, puede hacer lo siguiente:
- Ejecute el Procesador de comandos de Windows (cmd) como administrador
- Tipo:
netsh wlan set hostednetwork mode=allow ssid=NAME key=PASSWORD
- Entonces:
netsh wlan start hostednetwork
- Abra "Panel de control / Conexiones de red e Internet / de red"
- Haga clic con el botón derecho en su adaptador de red activo (el que usa para conectarse a Internet) y luego haga clic en Propiedades.
- A continuación, abra la pestaña Compartir
- Marque "Permitir que otros usuarios de la red se conecten ..." y seleccione su adaptador de minipuerto WiFi
- Una vez terminado, escriba:
netsh wlan stop hostednetwork
¡Eso es!
Fuente: cómo conectar el teléfono Android a una red ad-hoc sin software.
Tiene razón en que actualmente no es compatible nativamente con Android, aunque Google ha estado diciendo que vendrá desde que se lanzó oficialmente Android.
Si bien no es compatible de forma nativa, el hardware en cada dispositivo Android lanzado hasta la fecha sí lo admite. Simplemente está deshabilitado en el software, y deberá habilitarlo para usar estas características.
Sin embargo, es bastante fácil de hacer, pero debe ser root, y los detalles pueden ser ligeramente diferentes entre diferentes dispositivos. Su mejor fuente para obtener más información al respecto sería la de los desarrolladores de XDA: http://forum.xda-developers.com/forumdisplay.php?f=564 . La mayoría de las soluciones existentes se basan en reemplazar wpa_supplicant, y es el método que recomendaría si fuera posible en su dispositivo. Para obtener más detalles, consulte http://szym.net/2010/12/adhoc-wifi-in-android/ .
Actualización : Han pasado unos años, y cada vez que necesito una conexión de red ad hoc en mi teléfono, uso CyanogenMod . Le brinda acceso programático y con guiones a estas funciones y la capacidad de crear redes ad hoc (ibss) en el menú de configuración de WiFi.