我是嘗試以編程方式連接到另一個網絡。爲了測試,我使用nexus 7和android 5.1.1。我在這裏的代碼的一部分,一個改變網絡:Android沒有重新配置到配置的網絡
final String qu = "\"";
final String MC_SSID = qu + SSID + qu;
final String MC_PASS = qu + "mypass" + qu;
Log.d(TAG,"Conecting to " + MC_SSID + " : " + MC_PASS);
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = MC_SSID;
conf.preSharedKey = MC_PASS;
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for(WifiConfiguration i : list) {
Log.d(TAG,"WifiConf -> " + i.SSID);
if(i.SSID != null && i.SSID.equals(MC_SSID)) {
Log.d(TAG,"I\'m going to connect to " + i.SSID);
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
break;
}
}
通過這裏一切ok,我看到在頂部dissappear的無線網絡連接圖標,但再次連接時,網絡是最後一個,而不是在wifiManager
上配置的一個。
爲了另一項測試,我使用了另一家公司的另一款平板電腦,它運行良好。
日誌輸出:
08-28 13:00:45.174 25525-27323/com.urbanclouds.airsenseiv4 D/UpdateInformation﹕ Conecting to "My-SSID" : "mypass"
08-28 13:00:45.269 25525-27323/com.urbanclouds.airsenseiv4 D/UpdateInformation﹕ WifiConf -> "My-SSID"
08-28 13:00:45.269 25525-27323/com.urbanclouds.airsenseiv4 D/UpdateInformation﹕ I\'m going to connect to My-SSID
看來,一切都很好。
我執行此代碼對外螺紋,我不知道這是否會影響。
我做了一個應用程序來測試我是否做錯了,並且該應用程序工作正常,產生的變化很好。
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (adapter.getItem(position) != null) {
final String qu = "\"";
final String MC_SSID = qu + adapter.getItem(position) + qu;
final String MC_PASS = qu + "mypass" + qu;
Log.d(TAG,"Conecting to " + MC_SSID);
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = MC_SSID;
conf.preSharedKey = MC_PASS;
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for(WifiConfiguration i : list) {
Log.d(TAG,"WifiConf -> " + i.SSID);
if(i.SSID != null && i.SSID.equals(MC_SSID)) {
Log.d(TAG,"Voy ha realizar la reconexion");
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
break;
}
}
}
}
誰能告訴我爲什麼會發生:唯一的區別是執行(Execute)的一個ListView內取得的OnClickListener? Nexus 7的一些配置?我該如何解決它?
編輯:如有必要,我可以發佈保留代碼,但它有點廣泛。