この機能を使用して、ネットワークのステータス(接続または切断)を確認しようとしています。
// Check Network status
private fun isNetworkAvailable(): Boolean {
val connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE)
return if (connectivityManager is ConnectivityManager) {
val networkInfo = connectivityManager.activeNetworkInfo
networkInfo.isConnected
}
else false
}
これにより、切断されたネットワークで実行した場合、Java.lang.IllegalStateException:networkInfoをnullにすることはできません-エラーが発生します。どうして?そして、どうすればこれを解決できますか?
最も簡単な方法の1つは、以下のようにContextクラスに拡張機能を追加することです。
val Context.isConnected: Boolean
get() {
return (getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager)
.activeNetworkInfo?.isConnected == true
}
これで、次のようなアクティビティで使用できます。
if (!isConnected) {
// connection is not available...
}
この方法は、アクティビティ、フラグメント、またはコンテキスト内の任意の場所で使用できます。
このコードを使用してください、それは確かに役立ちます
fun checkConnectivity(context:Context):ブール値{
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val activeNetwork: NetworkInfo? = connectivityManager.activeNetworkInfo
if(activeNetwork?.isConnected!=null){
return activeNetwork.isConnected
}
else{
return false
}
}