【问题标题】:Android Firebase check connection status?Android Firebase 检查连接状态?
【发布时间】:2017-09-08 11:09:46
【问题描述】:

我有一个带有 Firebase 实时数据库的应用。如果未连接,此应用程序应显示 ProgressBar。我怎样才能做到这一点?我用“.info/connected”试过了,但结果似乎很随机。我需要检查与在线数据库的连接,而不是离线数据库。 (基本上,我想禁用离线功能,并显示用户是否离线)

【问题讨论】:

    标签: java android firebase firebase-realtime-database


    【解决方案1】:
    var firebaseRef = new Firebase('http://INSTANCE.firebaseio.com');
    firebaseRef.child('.info/connected').on('value', function(connectedSnap) {
      if (connectedSnap.val() === true) 
      {
        /* we're connected! */
      } 
      else {
        /* Give a custom Toast / Alert dialogue and exit the application */
      }
    });
    

    您也可以添加此检查

    public static boolean isNetworkAvailable(Context con) {
            try {
                ConnectivityManager cm = (ConnectivityManager) con
                        .getSystemService(Context.CONNECTIVITY_SERVICE);
                NetworkInfo networkInfo = cm.getActiveNetworkInfo();
    
                if (networkInfo != null && networkInfo.isConnected()) {
                    return true;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return false;
        }
    

    然后在您的 Activity/Fragment 中检查它

    if (isNetworkAvailable)
    {
    //Do you task
    }
    else{
    /*No internet so  Give a custom Toast / Alert dialogue and exit the application */
    }
    

    更多信息请参考link

    【讨论】:

    • 我之前试过这个,就像我说的那样。但即使我关闭了我的互联网,我仍然得到“真实”的结果。这就是我首先要问的原因。
    • 查看我修改后的互联网答案检查,如果它不可用,请给出适当的消息并退出您的应用程序
    • @AhmadBazzi 尝试使用isNetworkAvailable 条件,否则同时使用这两个条件if(connectedSnap.val() === true && isNetworkAvailable)
    • 在某些 Android 手机中无法正常工作。试试github.com/draxdave/netWatch
    猜你喜欢
    • 2018-11-02
    • 2014-08-18
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 2013-08-17
    • 1970-01-01
    相关资源
    最近更新 更多