问题描述
问题描述:
我有一个使用Firebase的应用程序(身份验证服务,firestore和firebase存储,crashlitycs等)。在需要互联网访问的功能中,例如在登录用户时,我使用此方法来确定是否存在互联网连接:
fun isNetworkAvailable(context: Context): Boolean {
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val activeNetworkInfo = connectivityManager.activeNetworkInfo
return activeNetworkInfo != null && activeNetworkInfo.isConnected
}
在Android Studio中,一切正常。但是,当拥有真实设备的用户去往通常关闭网络且GPS信号强度较低的区域(例如,在森林中)时,该应用会不断冻结并崩溃,并有各种例外情况。甚至根本不需要互联网的活动期间(例如拍照,浏览目录),也会出现问题。如何在Android Studio模拟器中重现此内容?
到目前为止,我已经尝试过:
- 我尝试在以下情况下使用
-netdelay
和-netspeed
开关为模拟器设置高延迟(10-20s)和低速(1-2kB / s) 从控制台开始。 - 我尝试使用模拟器的蜂窝选项。
以上任何一种方法都无法再现用户在森林或山脉中面对的冻结屏幕。没有调试的能力,我无法找出冻结UI线程的原因。有什么想法我该怎么办?
解决方法
听起来,冻结/崩溃与GPS有关而不是与网络有关。对我有用的是到处乱走,直到我在附近找到一个没有GPS信号的停车场。
此外,您绝对应该添加Firebase Crashlytics,以便在这些事件发生时获得崩溃报告。