在遵循本在线指南后,我已经为此工作了几天。我正在使用目标 API 30(在使用 Android 11 的设备上构建)。尝试使用此方法获取 Wifi SSIDnetworkCapabilities会不断返回 null,而折旧的方法wifiManager.connectionInfo.ssid会返回正确的 SSID。有什么想法我做错了吗?我知道 API 31 需要更改以包含,FLAG_INCLUDE_LOCATION_INFO但我相信这应该适用于 API 30。有什么想法吗?
import android.content.Context
import android.net.ConnectivityManager
import android.net.Network
import android.net.NetworkCapabilities
import android.net.NetworkRequest
import android.net.wifi.WifiInfo
import android.net.wifi.WifiManager
import android.util.Log
import androidx.lifecycle.LiveData
private const val TAG = "NetworkStatus"
enum class NetworkStatus {
UNAVAILABLE,
CONNECTED_TO_XXXX,
CONNECTED_TO_OTHER,
CONNECTION_LOST
}
class NetworkStatusHelper(private val context: Context) : LiveData<Pair<NetworkStatus, String>>() {
private lateinit var connectivityManagerCallback: ConnectivityManager.NetworkCallback
var connectivityManager: ConnectivityManager =
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val wifiManager =
context.getSystemService(Context.WIFI_SERVICE) …Run Code Online (Sandbox Code Playgroud) android ssid android-wifi kotlin android-connectivitymanager