【问题标题】:Make Android hotspot use WPA2 PSK使 Android 热点使用 WPA2 PSK
【发布时间】:2015-10-03 00:28:21
【问题描述】:

我的应用配置并激活了一个接入点:

// Expose the required method
WifiManager wifimanager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
Method setWifiApEnabled = wifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);

// Set up my configuration
WifiConfiguration myConfig = new WifiConfiguration();
myConfig.SSID = "markhotspot";
myConfig.allowedProtocols = WifiConfiguration.Protocol.RSN;
myConfig.preSharedKey = "markpass";

// Configure and enable the access point
setWifiApEnabled.invoke(wifiManager, myConfig, true);

热点正确出现,但没有安全性 - 没有 WPA2、WPA、WEP 等。

请问如何让它使用 WPA2?

【问题讨论】:

标签: android wpa wifi


【解决方案1】:

您可以定义密钥管理

示例代码:

private boolean setWifiApEnabled() 
    { 
        boolean result = false;
        // initialise you wifiManager first  
        wifiManager.setWifiEnabled(false); 
        Method enableWifi;
        try { 
            enableWifi = wifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
        } catch (NoSuchMethodException e) {
            Logger.e(TAG,e.toString());
            return result;
        } 

        WifiConfiguration  myConfig =  new WifiConfiguration();
        myConfig.SSID = "Your SSID";
        myConfig.preSharedKey  = "Your 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);
        try { 
            result = (Boolean) enableWifi.invoke(wifiManager, myConfig,status);
        } catch (IllegalAccessException | IllegalArgumentException
                | InvocationTargetException e) {
            Logger.e(TAG,e.toString());
            return result;
        } 

        return result;
    } 

【讨论】:

  • 它创建的是开放热点而不是 WPA-PSK。你能指导如何实现这一目标吗?
猜你喜欢
  • 2011-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-05
  • 1970-01-01
  • 2013-08-03
  • 1970-01-01
  • 2012-01-30
相关资源
最近更新 更多