Android 如何配置wifi自动连接true或false。如果为true,则应自动连接
我正在创建一个应用程序,其中我正在以编程方式扫描wifi、连接到选定wifi以及其他与wifi相关的任务。现在我想实现自动连接功能。Android 如何配置wifi自动连接true或false。如果为true,则应自动连接,android,wifi,android-wifi,android-networking,Android,Wifi,Android Wifi,Android Networking,我正在创建一个应用程序,其中我正在以编程方式扫描wifi、连接到选定wifi以及其他与wifi相关的任务。现在我想实现自动连接功能。 要求:如果开启自动连接,则缓存wifi信息,并允许下次自动连接网络; 如果多个网络设置为自动连接,则应连接到最近连接的网络。如有任何建议或指导,将不胜感激。在启用wifi时将应用程序连接到wifi。执行自动连接的步骤: 注册BroadcastReceiver()。 因此,每当应用程序位于前台且wifi启用时,都可以自动连接最近的wifi。wifiConfig.SS
要求:如果开启自动连接,则缓存wifi信息,并允许下次自动连接网络;
如果多个网络设置为自动连接,则应连接到最近连接的网络。如有任何建议或指导,将不胜感激。在启用wifi时将应用程序连接到wifi。执行自动连接的步骤: 注册
BroadcastReceiver()。
因此,每当应用程序位于前台且wifi启用时,都可以自动连接最近的wifi。wifiConfig.SSID=String.format(“\%s\”,networkSSID);wifiConfig.preSharedKey=String.format(“\%s\”,networkKey);我不明白它是如何获得SSID和密码的。我可以将配置为自动连接的wifi存储在某个地方,然后获取SSID和密码吗。我在这里感到困惑。这是不可能的,因为这将是一个重大的安全风险。如果手机是根目录的,你也许可以,但我不知道,我可以想象,我希望,即使你能找到它存储在手机上的地方,它也会被加密。我还有一个问题,是否有任何获取或设置自动连接的方法,以便我可以将所选wifi的自动连接设置为true或false。我建议您查看以下答案:希望对您有所帮助:)
<receiver
android:name=".MyReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<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"/>
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");
}
}
}
}