首页 > 解决方案 > 移动网络检查

问题描述

我正在开发一个集成了 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);
}

标签: android

解决方案


使用此方法

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;
}

推荐阅读