Android 如何以编程方式显示要连接的Wifi网络列表?
我正在为Nexus7编程。在我的程序中,我希望用户选择要使用的Wifi网络(预配置或创建新网络)。如何以编程方式打开该对话框?要访问wi-fi列表,您可能首先需要使用wi-fi权限。必须先打开Wi-Fi,Wi-Fi扫描才能提供结果列表 我的猜测是:进入无线状态 我认为最简单的方法是启动适当的意图。 行动选择无线网络 (也可以查看:操作\u WIFI\u设置)尝试Android 如何以编程方式显示要连接的Wifi网络列表?,android,wifi,android-wifi,Android,Wifi,Android Wifi,我正在为Nexus7编程。在我的程序中,我希望用户选择要使用的Wifi网络(预配置或创建新网络)。如何以编程方式打开该对话框?要访问wi-fi列表,您可能首先需要使用wi-fi权限。必须先打开Wi-Fi,Wi-Fi扫描才能提供结果列表 我的猜测是:进入无线状态 我认为最简单的方法是启动适当的意图。 行动选择无线网络 (也可以查看:操作\u WIFI\u设置)尝试 Intent intent = new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK);
Intent intent = new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK);
startActivity(intent);
如果要创建自己的对话框:
WifiManager wifiMgr = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
List<WifiConfiguration> list = wifiMgr.getConfiguredNetworks();
WifiManager wifiMgr=(WifiManager)context.getSystemService(context.WIFI\u SERVICE);
List List=wifiMgr.getConfiguredNetworks();
提供用于连接到具体SSID的网络和网络列表:
public void connectToWifi(String ssid) {
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + ssid + "\""; // Please note the quotes.
// String should contain
// ssid in quotes
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wifiMgr.addNetwork(conf);
Log.d(PluginConstants.LOG_TAG, ssid+" added");
List<WifiConfiguration> list = wifiMgr.getConfiguredNetworks();
for (WifiConfiguration i : list) {
if (i.SSID != null && i.SSID.equals("\"" + ssid + "\"")) {
wifiMgr.disconnect();
wifiMgr.enableNetwork(i.networkId, true);
wifiMgr.reconnect();
Log.d(PluginConstants.LOG_TAG, "conneting to: ssid");
break;
}
}
}
}
public void connectToWifi(字符串ssid){
WifiConfiguration conf=新的WifiConfiguration();
conf.SSID=“\”“+SSID+”\”“;//请注意引号。
//字符串应该包含
//引用ssid
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wifiMgr.addNetwork(conf);
Log.d(PluginConstants.Log_标签,ssid+“添加”);
List List=wifiMgr.getConfiguredNetworks();
用于(无线配置i:列表){
如果(i.SSID!=null&&i.SSID.equals(“\”+SSID+“\”)){
wifiMgr.disconnect();
wifiMgr.enableNetwork(即networkId,true);
wifiMgr.reconnect();
Log.d(PluginConstants.Log_标签,“连接到:ssid”);
打破
}
}
}
}