我正在开发一个应用程序,在app中的任何位置(在任何片段中 - 如果我错了就纠正我),如果用户没有连接到互联网,弹出窗口(我想我必须使用吐司) )要求用户
此应用程序肯定需要互联网连接。感谢。
答案 0 :(得分:1)
首先,您必须检查您的设备是否已连接到互联网。以下代码将帮助您检查。
检查互联网可用性的方法:
public boolean isOnline() {
ConnectivityManager cm =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
return netInfo != null && netInfo.isConnectedOrConnecting();
}
如果上面的布尔值为true,那么您可以继续操作,或者您必须指示用户转到“设置”并打开移动数据或Wi-Fi连接。请参阅以下代码以指导用户。如果上面的布尔值返回false,则调用以下方法。
displayMobileDataSettingsDialog(your current activity,context);
显示提醒的方法:
public static AlertDialog displayMobileDataSettingsDialog(final Activity activity, final Context context){
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("No Internet");
builder.setMessage("Please connect to your internet");
builder.setPositiveButton("Wifi", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
context.startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
dialog.cancel();
}
});
builder.setNegativeButton("Mobile Data", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.android.settings","com.android.settings.Settings$DataUsageSummaryActivity"));
dialog.cancel();
startActivity(intent);
activity.finish();
}
});
builder.show();
return builder.create();
}
可选强> 有时您的设备可能已连接到互联网,但没有收到数据,在这种情况下,您可以使用以下方法检查是否实际收到了设备的数据。
public boolean isInternetAvailable() {
try {
InetAddress ipAddr = InetAddress.getByName("google.com"); //You can replace it with your name
return !ipAddr.equals("");
} catch (Exception e) {
return false;
}
}
希望它对你有所帮助。