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);
}
解决方案
使用此方法
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;
}
推荐阅读
- php - PHP | 未在数据库中加载 CSV 数据
- html - HTML的value属性如何标签工作?
- firebase - Firebase 翻译文本扩展 - 是否可以翻译嵌套集合中的字段?
- java - 我在没有“catch”、“finally”或资源声明的情况下遇到错误,我该如何在下面的代码中解决这个问题
- rust - 是否可以仅使用“macro_rules!”来实现这个宏?
- random - 选择随机枚举值的简单且安全的方法是什么?
- arrays - 如何在C中返回指向结构数组的指针
- swift - 如何将结构数组转换为列表领域?
- javascript - 将项目添加到特定的列表数组 redux
- python - 将模型连接到边界框