我正在处理一个集成了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);
}
答案 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详细了解。
希望这会有所帮助。