移动网络检查

时间:2018-07-07 08:16:52

标签: android

我正在处理一个集成了OTP屏幕的应用程序。那里有一个小问题。我必须检查两个条件,一个是,如果网络不可用,那么我必须显示一条错误消息Network not available。否则,如果用户输入了错误的OTP,则错误消息应显示“输入了错误的OTP”。

现在我正在为这两种情况显示一条通用消息。不,如果没有。我想将它们分为两部分。我的问题是,如何检查移动网络问题(如果可用)?

if (task.isSuccessful()) {
  if (previousScreenTitle == R.string.login) {
    userPrivateInfo = Constants.ALL_USERS_REFERENCE.child(userMobileNumber);
    userPrivateInfo.addListenerForSingleValueEvent(new ValueEventListener() {
      @Override
      public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        /* Check if User mobile number is found in database */
        if (dataSnapshot.exists()) {
          startActivity(new Intent(OTP.this, NammaApartmentsHome.class));
        }
        /* User record was not found in firebase hence we navigate them to Sign Up page*/
        else {
          Intent intent = new Intent(OTP.this, SignUp.class);
          intent.putExtra(Constants.MOBILE_NUMBER, userMobileNumber);
          startActivity(intent);
        }
        finish();
      }

      @Override
      public void onCancelled(DatabaseError databaseError) {

      }
    });
  } else {
    setResult(Activity.RESULT_OK, new Intent());
    finish();
  }
} else {
  textResendOTPOrVerificationMessage.setText(R.string.check_network_connection);
}

2 个答案:

答案 0 :(得分:-1)

使用此方法

private boolean chechInternetConnection() {
    connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivityManager != null) {
        if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED ||
                connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
            connected = true;
            Log.i("Internet", "Connected");
        } else {
            connected = false;
            Log.i("Internet", "Not Connected");
        }
    }
    return connected;
}

答案 1 :(得分:-1)

以下代码段显示了如何使用ConnectivityManager查询活动网络并确定其是否具有Internet连接。

ConnectivityManager cm =
        (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
                      activeNetwork.isConnectedOrConnecting();

确定您的互联网连接类型

设备连接性可以通过移动数据,WiMAX,Wi-Fi和以太网连接来提供。通过查询活动网络的类型,如下所示,您可以根据可用带宽来更改刷新率。

boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;

Check Official Documentation详细了解。

希望这会有所帮助。