我正在尝试设置我的网络配置。问题是在我设置配置属性并调用addNetwork()
方法后,返回值(配置标识)为-1
。我不知道我的代码有什么问题。我在另一个项目中使用了相同的代码,它可以正常工作。
这些是我使用的权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
完整代码
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val wifiManager = activity.getSystemService(Context.WIFI_SERVICE) as WifiManager
val networkAccessPoint = NetworkAccessPoint.getInstance(wifiManager)
networkAccessPoint.generateConfigurationAccessPoint()
return inflater!!.inflate(R.layout.fragment_main, container, false);
}
NetwockAccessPoint类
public void generateConfigurationAccessPoint(){
WifiConfiguration wifiConfiguration = getWifiConfiguration();
String SSID = getSSID();
wifiConfiguration.SSID = String.format("\"%s\"", SSID);
wifiConfiguration.preSharedKey = "\"password\"";
wifiConfiguration.status = WifiConfiguration.Status.ENABLED;
wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
int networkConfigurationId = mWifiManager.addNetwork(wifiConfiguration);
mWifiManager.enableNetwork(networkConfigurationId, true);
setWifiConfiguration(wifiConfiguration);
setWifiAPEnabled(wifiConfiguration, true);
}
代码不会抛出任何异常。
解决
我得到的错误是我做的...我想用热点创建接入点,这样我就不需要addNetwork() enableNetwork() setConfiguration()
....而且我有价值-1 wifi已关闭
(正如我之前提到的,我希望AP用于热点)。