相关疑难解决方法(0)

不推荐使用ConnectivityManager getNetworkInfo(int)

使用compileSdkVersion 23,但是尝试支持9到9.

getNetworkInfo(int)在23中已弃用.建议改为使用getAllNetworks和getNetworkInfo(Network).然而,这两者都需要最少的API 21.

我们可以在支持包中使用哪个类可以帮助解决这个问题吗?

我知道之前提出了一个解决方案,但是我对9的最小api要求的挑战造成了问题.

networking android android-6.0-marshmallow android-connectivitymanager

122
推荐指数
9
解决办法
7万
查看次数

RequiresApi vs TargetApi android注释

什么区别RequiresApiTargetApi

kotlin中的样本:

@RequiresApi(api = Build.VERSION_CODES.M)
@TargetApi(Build.VERSION_CODES.M)
class FingerprintHandlerM() : FingerprintManager.AuthenticationCallback()
Run Code Online (Sandbox Code Playgroud)

注意:FingerprintManager.AuthenticationCallback需要apiM

注2:如果我不使用TargetApi lint失败并出错 class requires api level 23...

android kotlin android-annotations android-support-library

88
推荐指数
5
解决办法
3万
查看次数

连接管理器 - AllNetworks 已弃用

在替换此已弃用的代码以检查设备上的互联网连接时,有人可以为我指出正确的方向吗?

private val isNetworkAvailable = MutableStateFlow(false)

fun checkNetworkAvailability(context: Context): MutableStateFlow<Boolean> {

    val connectivityManager =
        context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
    connectivityManager.registerDefaultNetworkCallback(this)

    var isConnected = false
    // allNetworks Deprecated
    connectivityManager.allNetworks.forEach { network ->
        val networkCapability = connectivityManager.getNetworkCapabilities(network)
        networkCapability?.let {
            if(it.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)) {
                isConnected = true
                return@forEach
            }
        }
    }

    isNetworkAvailable.value = isConnected

    return isNetworkAvailable
}
Run Code Online (Sandbox Code Playgroud)

android kotlin

5
推荐指数
1
解决办法
2373
查看次数