如何以编程方式在android 7中保存访问点设置

时间:2016-12-17 20:34:33

标签: android settings access-point android-7.1-nougat

我正在开发一个应用程序,只要它启动就会创建一个热点。 在Android 7 Nougat问世之前,这一点很好。 我正在使用WifiApManager class

就像我说的一切都很完美但是当使用API​​ 25时,热点是使用正确的设置(ssid,密码等)创建的,我的笔记本电脑识别并连接。

然而,它“没有互联网”,因此不会发生数据交换。我需要做的是转到手机热点设置并按保存。它会一次又一次地转动,并最终按预期工作。

我不知道这是一个android bug还是故意的,但我相信以前的API没有“保存”按钮!?我一直在网上搜索但找不到任何东西。提前致谢。凯博

1 个答案:

答案 0 :(得分: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 +上打开/关闭Hotspot