任何人都可以帮助我如何在按下按钮时无法使用WiFi或移动数据时显示小吃吧。实际上,当用户想要从我的Android应用程序发送反馈表单时,此按钮用于发送电子邮件。
我的要求是: 当用户按下按钮如果有任何可用的网络,那么电子邮件应该直接发送而不显示Snackbar,并且当任何网络不可用时,应显示小吃吧。我过去几天一直试图解决我的问题,但没有运气。我的小吃吧编码一直有效,就像它在API级别23以下而不是上面按下按钮时每次显示和不显示网络一样。
注意:如果不提供Snackbar编码,我的代码工作正常。因此,我不需要电子邮件意图编码,只需要使用Snackbar进行网络状态编码。
如果有人提供正确的解决方案,它将对我有很大帮助。提前谢谢。
答案 0 :(得分:2)
使用以下功能检查互联网是否可用
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
如果返回true,则继续发送电子邮件。否则展示小吃吧。
您需要在清单中添加以下权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
答案 1 :(得分:1)
ConnectionDetect.class
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class ConnectionDetect
{
private Context context;
public static boolean chechkagain;
public ConnectionDetect(Context context) {
this.context = context;
}
public boolean isConnectingToInternet() {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = cm
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo datac = cm
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if ((wifi != null & datac != null)
&& (wifi.isConnected() | datac.isConnected())) {
chechkagain = true;
synchronized (context) {
context.notify();
}
} else {
chechkagain = false;
}
return chechkagain;
}
}
现在检查互联网是否可用
if (connectionDetect.isConnectingToInternet()) {
//Send Email
} else {
Snackbar snackbar = Snackbar
.make(coordinatorLayout,
"Please check internet",
Snackbar.LENGTH_LONG);
snackbar.show();
}
coordinatorLayout是我们想要显示小吃店的协调员布局的ID