Android Lollipop – Hotspot WiFi setWifiApEnabled () obtener InvocationTargetException

Estoy usando en la aplicación

setWifiApEnabled() 

desde Hidden API (acceso por reflexión). En algunos teléfonos antiguos está funcionando (también con Samsung Galaxy S3, algunos teléfonos con 4,4, …), pero lo probé con Samsung Galaxy S5 y me

 java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) ... 

Estoy utilizando código similar, como allí Android 2.2 wifi hotspot API o ¿Cómo y qué configurar a Android WifiConfiguration.preSharedKey para conectarse a la red WPA2 PSK WiFi, pero es un código poco antiguo.

¿Tienes experiencia con ella? ¿Que sugieres?

PS no está funcionando también en algunos dispositivos Android 4.4 (pero no obtengo InvocationTargetException).

Yo tuve el mismo problema.

Añadido android.permission.WRITE_SETTINGS al archivo de manifiesto y funcionó. Prueba esto.

Prueba esto.

 ConnectivityManager cman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); Method[] methods = cman.getClass().getMethods(); try { wifiManager.setWifiEnabled(false); Method enableWifi = wifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class); String ssid = " " //your SSID String pass = " " // your Password WifiConfiguration myConfig = new WifiConfiguration(); myConfig.SSID = ssid; myConfig.preSharedKey = pass ; myConfig.status = WifiConfiguration.Status.ENABLED; myConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); myConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN); myConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA); myConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); myConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); myConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); myConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); result = (Boolean) enableWifi.invoke(wifiManager, myConfig, true); } catch (Exception e) { e.printStackTrace(); result = false; } 

En caso de tu excepción, intenta agregar este permiso a tu Manifiesto android.permission.WRITE_SETTINGS

Tienes que agregar estos permisos a tu AndroidManifest.xml:

 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

Esto funciona para mi.

Encontré la causa:

 Caused by: java.lang.SecurityException: ConnectivityService: Neither user 10260 nor current process has android.permission.CONNECTIVITY_INTERNAL. 

Información:

¿Cómo puede la aplicación del sistema ubicada en / system / app tener permiso del sistema en Android 4.4 KitKat construir?

Es un pequeño gran problema 🙂

 public void setWiFiApMode(boolean mode) { if (mContext == null) return; WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE); if (wifiManager == null) return; try { Method setWifiApEnabled = WifiManager.class.getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class); setWifiApEnabled.invoke(wifiManager, null, mode); } catch (Exception e) { } } 

y

 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 

Completamente funciona en Android N.

  • Android - Get Notified cuando se detecta un nuevo punto de acceso?
  • Compruebe si la red ScanResult ya está configurada (existe en la lista getConfiguredNetworks ())
  • Android prueba la conexión wifi programáticamente
  • Cómo crear WPA personalizado Hotspot con ssid y contraseña en android?
  • SecurityException al obtener los resultados de la exploración Wifi
  • ¿Puedo usar WiFi para transferir datos / mensajes entre dos teléfonos Android, no conectados a un enrutador?
  • Thread colgar en WifiManager.enableNetwork ()
  • Cómo conectarse a un elemento Wifi ScanResult
  • ¿Cómo puedo configurar ProxySettings y ProxyProperties en la conexión Wi-Fi de Android usando Java?
  • Android.net.wifi.STATE_CHANGE: no se activa en Wifi desconectar
  • ¿Qué intervalo debo usar entre cada exploración WiFi en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.