通过 ACTION_WIFI_ADD_NETWORKS 意图添加 WiFi 网络

Add WiFi network via ACTION_WIFI_ADD_NETWORKS intent

我正在尝试使用新的 Wifi suggest API. Specifically I want to add the network to the list, so as the documentation says I have to implement this 意图连接到 WiFi 网络。

这是我现在拥有的:

val suggestion = if (wifiConnection.authentication == AUTHENTICATION_NOPASS) {
    WifiNetworkSuggestion.Builder()
            .setSsid(wifiConnection.ssid)
            .build()
} else {
    WifiNetworkSuggestion.Builder()
            .setSsid(wifiConnection.ssid)
            .setWpa2Passphrase(wifiConnection.password)
            .build()
}

val intent = Intent(ACTION_WIFI_ADD_NETWORKS)
intent.putExtra(EXTRA_WIFI_NETWORK_LIST, arrayListOf(suggestion))
startActivityForResult(intent, 1002)

然而,当我 运行 这段代码时,我遇到了以下崩溃:

2020-10-12 16:38:48.291 17001-17001/com.my.app E/AndroidRuntime: FATAL EXCEPTION: main Process: com.my.app PID: 17001 android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.WIFI_ADD_NETWORKS } at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2076) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1720) at android.app.Activity.startActivityForResult(Activity.java:5258) at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:676) at android.app.Activity.startActivityForResult(Activity.java:5203) at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:663) at com.my.app.presentation.ui.activity.ConnectActivity.connectApi29(ConnectActivity.kt:504) at com.my.app.presentation.ui.activity.ConnectActivity.connect(ConnectActivity.kt:343) at com.my.app.presentation.ui.activity.ConnectActivity.access$connect(ConnectActivity.kt:70) at com.my.app.presentation.ui.activity.ConnectActivity$setReadyState.onClick(ConnectActivity.kt:334) at android.view.View.performClick(View.java:7862) at android.widget.TextView.performClick(TextView.java:15004) at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992) at android.view.View.performClickInternal(View.java:7831) at android.view.View.access00(View.java:879)

WiFi列表的正确打开方式是什么,用户可以选择建议的网络进行添加?

此意图操作已添加到 API 30 级,因此如果您 运行 设备上的此代码 运行 API 29 级或以下,它将获胜工作。 请确保设备或模拟器在 API 级别 30 上 运行。