android应用开发 android11 连接指定wifi代码
时间: 2023-10-08 15:08:02 浏览: 54
以下是连接指定wifi的Android 11代码示例:
1. 在AndroidManifest.xml文件中添加以下权限:
```
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
```
2. 在Activity中添加以下代码:
```java
private static final String SSID = "指定的Wi-Fi名称";
private static final String PASSWORD = "指定的Wi-Fi密码";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 检查是否已连接到指定的Wi-Fi
if (isConnectedToSSID(SSID)) {
Toast.makeText(this, "已连接到指定Wi-Fi", Toast.LENGTH_SHORT).show();
} else {
// 连接指定的Wi-Fi
connectToSSID(SSID, PASSWORD);
}
}
private boolean isConnectedToSSID(String ssid) {
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
return wifiInfo != null && ssid.equals(wifiInfo.getSSID());
}
private void connectToSSID(String ssid, String password) {
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiNetworkSpecifier.Builder builder = new WifiNetworkSpecifier.Builder();
builder.setSsid(ssid);
builder.setWpa2Passphrase(password);
WifiNetworkSpecifier wifiNetworkSpecifier = builder.build();
NetworkRequest.Builder networkRequestBuilder = new NetworkRequest.Builder();
networkRequestBuilder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
networkRequestBuilder.setNetworkSpecifier(wifiNetworkSpecifier);
NetworkRequest networkRequest = networkRequestBuilder.build();
ConnectivityManager connectivityManager = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
connectivityManager.requestNetwork(networkRequest, new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(@NonNull Network network) {
super.onAvailable(network);
wifiManager.bindProcessToNetwork(network);
Toast.makeText(MainActivity.this, "已连接到指定Wi-Fi", Toast.LENGTH_SHORT).show();
}
@Override
public void onUnavailable() {
super.onUnavailable();
Toast.makeText(MainActivity.this, "连接Wi-Fi失败", Toast.LENGTH_SHORT).show();
}
});
}
```
以上代码将检查是否已连接到指定的Wi-Fi,如果没有连接,则使用指定的Wi-Fi名称和密码连接到Wi-Fi网络。请注意,此代码需要在Android 10或更高版本上才能正常工作。