ConnectivityManager.TYPE_WIFI показывает устаревший в коде. Я использовал сетевые возможности в вышеупомянутой версии M, хочу удалить предупреждение об устаревшем - PullRequest
0 голосов
/ 29 мая 2019

Я хочу удалить предупреждение, которое отображается в коде ниже m версии. Я использовал приведенный ниже код, который работает хорошо, но все еще хочу удалить предупреждение, которое отображается в строке ConnectivityManager.TYPE_WIFI. Может быть удалено предупреждение ниже, котороетакже отображается в компиляторе kotlin ??

val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager?
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            cm?.run {
                cm.getNetworkCapabilities(cm.activeNetwork)?.run {
                    if (hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
                        return true
                    } else if (hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
                        return true
                    }
                }
            }
        } else {
            cm?.run {
                cm.activeNetworkInfo?.run {
                    if (type == ConnectivityManager.TYPE_WIFI) {
                        return true
                    } else if (type == ConnectivityManager.TYPE_MOBILE) {
                        return true
                    }
                }
            }
        }

Предупреждение: - 'getter for type: Int' устарел.

1 Ответ

0 голосов
/ 04 июня 2019

Попробуйте это

Вы можете использовать @Suppress("DEPRECATION"), чтобы удалить это предупреждение

ОБРАЗЕЦ КОДА

import android.content.Context
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class Main2Activity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main2)

        val networkResult = getConnectionType(this)

    }

    @Suppress("DEPRECATION")
    fun getConnectionType(context: Context): Boolean {
        var result = false
        val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager?
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            cm?.run {
                cm.getNetworkCapabilities(cm.activeNetwork)?.run {
                    if (hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
                        result = true
                    } else if (hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
                        result = true
                    }
                }
            }
        } else {
            cm?.run {
                cm.activeNetworkInfo?.run {
                    if (type == ConnectivityManager.TYPE_WIFI) {
                        result = true
                    } else if (type == ConnectivityManager.TYPE_MOBILE) {
                        result = true
                    }
                }
            }
        }
        return result
    }
}

ПРОВЕРЬТЕ СКРИНШОТ

enter image description here

...