Qual è la chiamata API che devo fare in Android 2.2 (Froyo) per creare un hotspot Wi-Fi (come mostrato nell'elemento Impostazioni Tethering e Hotspot portatile).API hotspot Wi-Fi Android 2.2 API
risposta
È possibile chiamare
private boolean setWifiApEnabled(WifiConfiguration wifiConfig, boolean enabled);
utilizzando la riflessione :)
dopo avere ottenuto il WifiManager
utilizzare la riflessione per ottenere i WifiManager
metodi dichiarati, cercare questo nome di metodo setWifiApEnabled
e richiamare attraverso il WifiManager
oggetto
Queste API sono contrassegnate come @hide, quindi attualmente non è possibile utilizzarle direttamente, ma appaiono o n l'AIDL per il WifiManager in modo che siano accessibili!
Un esempio può essere:
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();
}
}
}
Funziona ma non posso cambiare la configurazione corrente con la mia, e ottenere il WifiConfiguration corrente di un AP attiva drive me a un configuration.Why vuoto?
buona indagine – Schildmeijer
Puoi sempre accedervi tramite la riflessione! –
@ markov00: l'approccio suggerito non fa parte dell'SDK di Android. Non usarlo, punto. – CommonsWare
Sembra che non ci sia una chiamata API per creare un hotspot WiFi - mi spiace!
funziona su API 8 e versioni successive. Io uso una versione molto diversa da quella in basso (o sopra), e mi sono imbattuto nello stesso problema in cui è stato eseguito markov00; non essere in grado di caricare la configurazione Wifi predefinita per l'AP Wi-Fi portatile. Ho trovato una soluzione altrove.
Se ti piace la soluzione, sarebbe bello se questo è stato accettato come una risposta
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();
}
}
}
Quindi dopo aver annullato quello corrente accetta il tuo WifiConfig? – bk138
no, ma usa solo il valore predefinito, già impostato uno – slinden77
@dmmh, è vero aggiungendo "method.invoke (wifi, null, true);" è abilitato. e quindi ho appena cambiato i valori booleani in "falso" per disattivarlo? Che ne dici di verificare lo stato corrente se è acceso/spento? – gumuruh
- 1. Android: programmazione Accendere hotspot WiFi
- 2. Java - Wifi API
- 3. Hotspot multiplexato in Android
- 4. Android 6.0.1 non poteva consentire WiFi Hotspot programmazione
- 5. Web Api 2.2 con odata e $ expand
- 6. Sviluppo Android: api 14 vs api 15
- 7. Contatti Google API API API API
- 8. API di backup Android
- 9. API doppia SIM Android
- 10. API Android come java.awt.Robot
- 11. API Android da Go
- 12. Diagramma classe API Android
- 13. Dropbox api in Android
- 14. API SMS Android
- 15. Tastiera Android api
- 16. Android google traduttore API
- 17. Youtube Api android autostart
- 18. API di cronologia Android 4.0 e HTML5
- 19. C# Connessione a rete Wi-Fi con API WiFi gestita
- 20. java.lang.OutOfMemoryError su Android 4.0 (API 14)
- 21. Android: GLES20: Chiamata API OpenGL non implementata
- 22. recuperare elenco di amici da Facebook SDK 4.0.1 in Android con il grafico API 2.2
- 23. Android 2.2 Webview causa OpenGL ES API senza contesto corrente (registrato una volta per thread)
- 24. Hotspot Wi-Fi AP Android - senza internet
- 25. Errore Android No, minSdk (API 19)> deviceSdk (API 1)
- 26. Downgrade dell'SDK Android (api 23 -> api 21)
- 27. Problema dell'altezza RecyclerView in API 17 e API 16 - Android
- 28. Documentazione API API iOS
- 29. Eclipse Android Cambia API Level
- 30. Errore YouTube Android API YouTubePlayerView
io ancora non riesco a credere che non v'è alcuna API per attivare/disattivare il tethering. Spero che esista, ma non è ancora stato documentato. – Sney
È documentato: http://www.androidjavadoc.com/2.3/android/net/wifi/WifiManager.html Semplicemente non fa parte dell'API ufficiale. –