¿Cuál es la llamada de API que necesito hacer en Android 2.2 (Froyo) para crear un punto de acceso Wifi (como se ve en el elemento de configuración de Hotspot y anclaje portátil).Android 2.2 wifi punto de acceso API
Respuesta
Puede llamar
private boolean setWifiApEnabled(WifiConfiguration wifiConfig, boolean enabled);
utilizando la reflexión :)
después de recibir la WifiManager
utilizan la reflexión para obtener los WifiManager
métodos declarados, busque este nombre de método setWifiApEnabled
e invocar a través de la WifiManager
objeto
Estas API están marcadas como @hide, por lo que actualmente no puede usarlas directamente, pero aparecen o ¡n la AIDL para el Administrador de Wifi para que sean accesibles!
Un ejemplo puede ser:
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
Method[] wmMethods = wifi.getClass().getDeclaredMethods();
for(Method method: wmMethods){
if(method.getName().equals("setWifiApEnabled")){
WifiConfiguration netConfig = new WifiConfiguration();
netConfig.SSID = "\"PROVAAP\"";
netConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
try {
method.invoke(wifi, netConfig,true);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
Funciona pero no puede cambiar la configuración actual con la mía, y conseguir el WifiConfiguration actual de un punto de acceso activo me llevara a un configuration.Why vacío?
buena investigación – Schildmeijer
¡Siempre puede acceder a ellos a través de la reflexión! –
@ markov00: su enfoque sugerido no es parte del SDK de Android. No lo use, punto. – CommonsWare
Parece que no hay una llamada API para crear un punto de acceso WiFi, ¡lo siento!
esto funciona en API 8 y superior. Utilizo una versión muy diferente, luego esta a continuación (o superior), y me encontré con el mismo problema con el que se encontró markov00; no ser capaz de cargar la Configuración wifi predeterminada para el Wi-Fi AP portátil. Encontré una solución en otro lugar.
Si te gusta la solución, sería bueno si esto fue aceptado como una respuesta
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
Method[] wmMethods = wifi.getClass().getDeclaredMethods();
for (Method method: wmMethods){
if (method.getName().equals("setWifiApEnabled")){
try {
// just nullify WifiConfiguration to load the default configuration ;)
method.invoke(wifi, null, true);
} catch (IllegalArgumentException e){
e.printStackTrace();
} catch (IllegalAccessException e){
e.printStackTrace();
} catch (InvocationTargetException e){
e.printStackTrace();
}
}
}
Entonces, después de anular el actual ¿acepta su WifiConfig? – bk138
no, pero solo usa el valor predeterminado, ya está configurado – slinden77
@dmmh, es cierto al agregar "method.invoke (wifi, null, true);" está habilitado y entonces solo cambio los valores booleanos en "falso" para apagarlo? ¿Qué hay para verificar su estado actual si está activado/desactivado? – gumuruh
- 1. Punto de acceso multiplexado en Android
- 2. detección de desconexión de un punto de acceso WiFi
- 3. cómo obtener la IP del punto de acceso wifi en Android?
- 4. Android - Detectar si Wifi Requiere Acceso del navegador
- 5. acceso píxel en OpenCV 2.2
- 6. Punto de acceso Wi-Fi Android - sin internet
- 7. Android 2.1 vs 2.2
- 8. Conectividad WIFI a WIFI con Android
- 9. Android 2.2 problema de VideoView
- 10. android encender wifi programáticamente
- 11. ¿Puedo encontrar la dirección MAC de mi punto de acceso en Android?
- 12. Camera.getNumberOfCameras() no funciona en Android 2.2
- 13. Cómo usar Base64 (incluido en Android desde la api 8 (2.2)) en un proyecto Android api 3 (android 1.5)?
- 14. WIFI_STATE_CHANGED_ACTION intento no recibido al conectarse al punto de acceso WiFi?
- 15. Conexión WiFi Android programáticamente
- 16. android wifi permission
- 17. ¿Cómo obtener el nombre de la red wifi fuera de Android usando la API de Android?
- 18. API de red punto a punto Bluetooth iOS
- 19. Problemas de script wifi Android
- 20. Grabar llamada en Android 2.2
- 21. Programación de socket Android sin conexión WIFi
- 22. conexión múltiple directa WiFi de Android ad-hoc
- 23. Autenticación automática para Android WiFi Direct
- 24. Uso del teléfono Android como servidor web wifi
- 25. cámara no funciona en Android 2.2
- 26. Android Scan for Wifi networks
- 27. Soporte de idioma azerbaiyano por Android 2.2?
- 28. ¿Cómo registro mi cuenta de Google en el emulador de Android ejecutando 2.2 api nivel 8?
- 29. API de punto final Semántica
- 30. Emulador de Android - Error de Wifi
Todavía no puedo creer que no hay una API para activar/desactivar la inmovilización. Espero que exista, pero aún no está documentado. – Sney
Está documentado: http://www.androidjavadoc.com/2.3/android/net/wifi/WifiManager.html Simplemente no forma parte de la API oficial. –