如何在Android中自动登录以打开需要网络用户/密码的WiFi?
首先,我通过编程连接到开放式Wifi如何在Android中自动登录以打开需要网络用户/密码的WiFi?,android,networking,login,wifi,Android,Networking,Login,Wifi,首先,我通过编程连接到开放式Wifi public static boolean conectar(Context ctx, String user, String pass){ boolean conectado = false; String networkSSID = "wifiguay.es"; WifiConfiguration conf = new WifiConfiguration(); conf.SSID = "\"" + networkSS
public static boolean conectar(Context ctx, String user, String pass){
boolean conectado = false;
String networkSSID = "wifiguay.es";
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + networkSSID + "\"";
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
WifiManager wifiManager = (WifiManager) ctx.getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for( WifiConfiguration i : list ) {
if(i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
conectado = true;
break;
}
}
return conectado;
}
现在,我不知道如何放置数据。您可以看看这个问题,您必须根据自己的需要对其进行自定义,即更改字段名
此外,我不知道这是否适用于您的情况,但是存储敏感的密码是棘手的,最好考虑简单地打开浏览器,让用户或浏览器如果它的设置保存凭据,注意输入密码。
public class ConexionEstablecida extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if(info != null){
if(info.isConnected()){
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ssid = wifiInfo.getSSID();
String networkSSID = "wifiguay.es";
if(ssid.equalsIgnoreCase("\"" + networkSSID + "\"")){
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://wifiguay.lan/login?dst=http%3A%2F%2Fwww.google.es%2F"));
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
}
}
}
编辑:该问题的示例:
mWebView.loadUrl(url);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
String user="u";
String pwd="p";
view.loadUrl("javascript:document.getElementById('nameofyourusernamefield').value = '"+user+"';document.getElementById('nameofyourpasswordfield').value='"+pwd+"';");
}
}) 它可以工作,我只需要隐藏webView并准备好。非常感谢!