如何配置 wifi 自动连接 true 或 false.If true 它应该自动连接
How to configure a wifi auto connect true or false.If true it should auto connect
我正在创建一个应用程序,我在其中执行扫描 wifi、连接到选定的 wifi 和其他 wifi 相关任务programmatically.Now我想实现自动连接功能。
需求:如果自动连接开启,wifi的信息会被缓存并允许下次自动连接网络;
如果多个网络设置为自动连接,那么它应该连接到最近连接的 one.Any 建议或指导将不胜感激。
只要启用 wifi,就会将应用程序连接到 wifi。执行自动连接步骤:
注册BroadcastReceiver().
<receiver
android:name=".MyReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
在 Menifest 中添加权限。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
创建 MyReceiver
:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
Log.d("MyReceiver", "MyReceiver invoked...");
WifiManager wifiManager = (WifiManager)
context.getSystemService(context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ssid = wifiInfo.getSSID();
boolean noConnectivity = intent.getBooleanExtra(
ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
if (!noConnectivity) {
Log.d("MyReceiver", "connected");
WifiConfiguration wifiConfig = new WifiConfiguration();
wifiConfig.SSID = String.format("\"%s\"", ssid );
wifiConfig.preSharedKey = String.format("\"%s\"", networkKey);
WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
int netId = wifiManager.addNetwork(wifiConfig);
wifiManager.disconnect();
wifiManager.enableNetwork(netId, true);
wifiManager.reconnect();
}
else{
Log.d("NetworkCheckReceiver", "disconnected");
}
}
}
}
因此,只要应用程序在前台并且启用了 wifi,就会自动连接最近的 wifi。
我正在创建一个应用程序,我在其中执行扫描 wifi、连接到选定的 wifi 和其他 wifi 相关任务programmatically.Now我想实现自动连接功能。
需求:如果自动连接开启,wifi的信息会被缓存并允许下次自动连接网络;
如果多个网络设置为自动连接,那么它应该连接到最近连接的 one.Any 建议或指导将不胜感激。
只要启用 wifi,就会将应用程序连接到 wifi。执行自动连接步骤:
注册BroadcastReceiver().
<receiver
android:name=".MyReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
在 Menifest 中添加权限。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
创建 MyReceiver
:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
Log.d("MyReceiver", "MyReceiver invoked...");
WifiManager wifiManager = (WifiManager)
context.getSystemService(context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ssid = wifiInfo.getSSID();
boolean noConnectivity = intent.getBooleanExtra(
ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
if (!noConnectivity) {
Log.d("MyReceiver", "connected");
WifiConfiguration wifiConfig = new WifiConfiguration();
wifiConfig.SSID = String.format("\"%s\"", ssid );
wifiConfig.preSharedKey = String.format("\"%s\"", networkKey);
WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
int netId = wifiManager.addNetwork(wifiConfig);
wifiManager.disconnect();
wifiManager.enableNetwork(netId, true);
wifiManager.reconnect();
}
else{
Log.d("NetworkCheckReceiver", "disconnected");
}
}
}
}
因此,只要应用程序在前台并且启用了 wifi,就会自动连接最近的 wifi。