我正在为三星 Galaxy watch 4 开发一个独立的应用程序。我正在使用互联网连接网络服务 API。三星 Galaxy Watch 4 支持 Wi-Fi 连接,但当手表与手机配对时,它会切换到手机互联网。所以为了检查手表的互联网可用性,我写了下面的代码
fun isNetworkConnected(context: Context): Boolean {
val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val n = cm.activeNetwork
if (n != null) {
val nc = cm.getNetworkCapabilities(n)
//It will check for both WiFi and Bluetooth transport
return (nc.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) ||
nc.hasTransport(NetworkCapabilities.TRANSPORT_BLUETOOTH))
}
Log.d(TAG,"No Active Network Available")
return false
}
上述代码的问题是,当手表与手机配对时,手机的移动数据和 Wi-Fi 已关闭,手表 Wi-Fi 也已关闭仍然nc.hasTransport(NetworkCapabilities.TRANSPORT_BLUETOOTH)
返回 true,我的应用程序崩溃,因为实际上没有可用的互联网。任何人都可以在 Wear OS 3.0 上运行的应用程序上以更好的方式检查互联网可用性吗?