【问题标题】:How to produce really poor network quality and low GPS signal strength in Android Studio emulator?如何在 Android Studio 模拟器中产生非常差的网络质量和低 GPS 信号强度?
【发布时间】:2020-12-16 08:20:09
【问题描述】:

问题描述:

我有一个使用 Firebase 的应用程序(身份验证服务、firestore 和 firebase 存储、crashlititycs 等...)。在需要上网的功能中,例如用户登录时,我使用这种方法来判断是否有网络连接:

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 线程的原因。有什么想法我能做什么?

【问题讨论】:

    标签: android user-interface networking cellular-network


    【解决方案1】:

    听起来冻结/崩溃与 GPS 相关,而不是与网络相关。对我有用的是开车到处转,直到我发现附近有一个没有 GPS 信号的停车场。

    此外,您绝对应该添加 Firebase Crashlytics,以便在这些事件发生时获得崩溃报告。

    【讨论】:

    • 我已经从应用程序中删除了LocationListener的实现,但问题仍然存在。那是我唯一使用 GPS 的地方。 Firebase 是否有可能试图在后台获取一些位置数据,并以某种方式导致 UI 冻结/崩溃?
    • 不可能说没有任何崩溃报告或没有完整的代码库可供查看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多