如何在Android Studio仿真器中产生非常差的网络质量和较低的GPS信号强度?

问题描述

问题描述:

我有一个使用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,以便在这些事件发生时获得崩溃报告。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...