📜  Android Wifi示例(1)

📅  最后修改于: 2023-12-03 14:59:15.856000             🧑  作者: Mango

Android Wifi示例

在Android开发中,连接Wifi是常见的操作。本文将介绍如何使用Android SDK连接Wifi网络,并展示一个简单的示例应用程序。

WifiManager类

Android SDK中有一个名为WifiManager的类,它允许开发人员与Wifi网络进行交互。在应用程序中使用此类时,需要获取WifiManager实例。可以使用以下代码获取WifiManager实例:

WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);

获取WifiManager实例后,即可使用WifiManager提供的各种方法对Wifi网络进行操作。

示例应用程序

在这个示例应用程序中,我们将使用WifiManager连接指定的Wifi网络。此应用程序包括一个EditText和两个Button,一个用于连接Wifi网络,另一个用于断开Wifi网络连接。

首先,在AndroidManifest.xml文件中添加以下权限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

然后,在布局文件中添加EditText和两个Button:

<EditText
    android:id="@+id/wifi_ssid"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Wifi SSID" />

<Button
    android:id="@+id/connect_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Connect" />

<Button
    android:id="@+id/disconnect_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Disconnect"
    android:enabled="false" />

当用户输入Wifi SSID后,单击“Connect”按钮连接Wifi。单击“Disconnect”按钮时,将断开与Wifi的连接。

在Activity的onCreate方法中,将如下代码添加到connect_button的onClick监听器中:

EditText wifiSsidEditText = findViewById(R.id.wifi_ssid);
String wifiSsid = wifiSsidEditText.getText().toString();

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);

WifiConfiguration wifiConfig = new WifiConfiguration();
wifiConfig.SSID = "\"" + wifiSsid + "\"";
wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);

int netId = wifiManager.addNetwork(wifiConfig);
wifiManager.disconnect();

if (netId == -1) {
    Toast.makeText(this, "Failed to connect to Wifi", Toast.LENGTH_SHORT).show();
    return;
}

wifiManager.enableNetwork(netId, true);
boolean success = wifiManager.reconnect();

if (success) {
    Toast.makeText(this, "Connected to Wifi", Toast.LENGTH_SHORT).show();
    findViewById(R.id.disconnect_button).setEnabled(true);
} else {
    Toast.makeText(this, "Failed to connect to Wifi", Toast.LENGTH_SHORT).show();
}

该代码将WifiConfiguration对象用于配置连接。然后,它添加网络,断开当前连接并启用新连接。服务连接成功后,将启用“Disconnect”按钮。

在DisconnectButton的onClick监听器中添加以下代码:

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifiManager.disconnect();
findViewById(R.id.disconnect_button).setEnabled(false);
findViewById(R.id.connect_button).setEnabled(true);
Toast.makeText(this, "Disconnected from Wifi", Toast.LENGTH_SHORT).show();

这会断开Wifi连接,并使“Connect”按钮可用。

现在简单易扩展的应用程序已经准备好了!

结论

Android WifiManager类使得连接Wifi网络变得非常简单。当您构建应用程序时,确保使用此类将无缝地连接您的应用程序到Wifi网络。

引用