Точка доступа Wi-Fi Android 2.2 API

Каков вызов API, который я должен сделать в Android 2.2 (Froyo) для создания точки доступа Wi-Fi (как замечено в объекте настроек Tethering и Portable Hotspot).

24
задан Cheese Lover 17 December 2018 в 06:18
поделиться

2 ответа

Вы можете вызвать

private boolean setWifiApEnabled (WifiConfiguration wifiConfig, boolean enabled);

используя отражение :)

после получения WifiManager используйте отражение чтобы получить объявленные методы WifiManager , найдите этот метод с именем setWifiApEnabled и вызовите его через объект WifiManager

Эти API помечены как @hide, поэтому в настоящее время вы не можете использовать их напрямую, но они появляются в AIDL для WifiManager, поэтому они доступны!

Примером может быть:

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();
    }
  }
}

Он работает, но я не могу изменить текущую конфигурацию своей собственной, и получение текущей WifiConfiguration активной точки доступа приводит меня к пустой конфигурации. Почему?

42
ответ дан 28 November 2019 в 23:17
поделиться

Похоже, не существует вызова API для создания точки доступа Wi-Fi - извините!

2
ответ дан 28 November 2019 в 23:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: