Как программно сохранить настройки точки доступа в андроид 7

Я работаю над приложением, которое создает точку доступа сразу после запуска. Это работало нормально, пока не появился Android 7 Nougat. Я использую класс WifiApManager.

Как я уже сказал, все работало отлично, но при использовании API 25 точка доступа создается с правильными настройками (ssid, пароль и т. д.), и мой ноутбук распознает ее и подключается.

Однако у него «нет Интернета», поэтому обмен данными не происходит. Что мне нужно сделать, так это зайти в настройки точки доступа телефона и нажать «Сохранить». Он будет включаться снова и снова и, в конце концов, будет работать как надо.

Я не знаю, является ли это ошибкой Android или это сделано намеренно, но я полагаю, что в предыдущих API не было кнопки «Сохранить»!? Я искал в Интернете, но ничего не нашел. Заранее спасибо. кЭбО


person kEbO    schedule 17.12.2016    source источник


Ответы (1)


  public static boolean setHotspotNameAndPassword(String newName,String password, Context context) {
        try {
            WifiManager wifiManager = (WifiManager) context.getSystemService(context.WIFI_SERVICE);
            Method getConfigMethod = wifiManager.getClass().getMethod("getWifiApConfiguration");
            WifiConfiguration wifiConfig = (WifiConfiguration) getConfigMethod.invoke(wifiManager);
            wifiConfig.preSharedKey=password;
            wifiConfig.SSID = newName;

            Method setConfigMethod = wifiManager.getClass().getMethod("setWifiApConfiguration", WifiConfiguration.class);
            setConfigMethod.invoke(wifiManager, wifiConfig);
            return true;
        }
        catch (Exception e) {
            e.printStackTrace();
            return false;
        }

Это работа для меня! Изменить настройку.

но я не могу найти способ включить/выключить точку доступа на Android 7.0+

person Dandan    schedule 19.05.2017
comment
Спасибо за помощь. Я делаю это так же, как вы показали в своем коде. чтобы включить его, я использую Method method = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);Проблема в моем случае заключается не в том, чтобы включить точку доступа, а в том, чтобы получить IP-адрес с клиентом. С уважением кЭбО - person kEbO; 24.05.2017