检查互联网的答案于2014年发布在此帖子中:https://stackoverflow.com/a/27312494/12359431
但是,在其中一个答案中,有这段代码
fun hasInternetConnection(): Single<Boolean> {
return Single.fromCallable {
try {
// Connect to Google DNS to check for connection
val timeoutMs = 1500
val socket = Socket()
val socketAddress = InetSocketAddress("8.8.8.8", 53)
socket.connect(socketAddress, timeoutMs)
socket.close()
true
} catch (e: IOException) {
false
}
}
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
}
我已经通过在底部的代码中实现上面的代码来进行尝试。但是,它只是崩溃了,因此我无法找到有关应用程序为什么崩溃的错误的任何信息。
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
/* Initialise Azure Service Adapter */
AzureServiceAdapter.Initialize(this)
hasInternetConnection().subscribe{hasInternet->
/*Call database and check phone number*/
Log.i("Logger", "Connected")}
/* Authentication */
authUser()
}
}
这是我的实现
implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
implementation 'io.reactivex.rxjava3:rxjava:3.0.0'
我缺少什么,还是不应该添加到MainActivity文件中?还是关于为什么我的Kotlin应用程序崩溃的线索?
那是因为您不能在主线程上调用它。