修改Android AP的SSID和SharedKey

WifiManager中含有可以修改AP模式下SSID和SharedKey的方法,在源码中可以看到这部分方法被@hide了,也就是被隐藏了,不过只要利用反射即可调用这些方法。

咱在设置SSID和SharedKey时,发现几个需要注意的点:

  1. 写入系统设置的权限,可以通过Intent的方式提示用户给予权限
  2. <uses -permission android:name="android.permission.ACCESS_WIFI_STATE"></uses>
    <uses -permission android:name="android.permission.CHANGE_WIFI_STATE"></uses>
    <uses -permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses>
    <uses -permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses>
    <uses -permission android:name="android.permission.WRITE_SETTINGS"></uses>
  3. 设置AP模式的参数,会同时自动打开AP(无法在关闭AP的情况下,写入设置,这一点,可以从下面的代码看到,当setWifiApEnable的第三个参数为false时,随便填个null,因为设置是不会更新的,所以为了设置AP的各种参数,必须先关闭AP,然后填充WifiConfiguration结构,最后把setWifiApEnable设置为true,设置完成并打开AP。),并且需要提前关闭WIFI,两者不能共存
  4. 有些手机只支持WPA2_PSK加密方式,看了下源码,貌似这种加密方式在WifiConfiguration结构里面并没有看到,然后看到有些人的说法是被隐藏了,具体情况,咱不太清楚,反正源码确实没有看到对应的字段,所以自己一直卡在这里,没法更新AP的密码,后面看到网上有的设置为4,之后便可以使用WPA2_PSK加密方式了。。。。

下面是部分代码片段 Continue reading “修改Android AP的SSID和SharedKey”