对于我的Android应用程序需要连接互联网来执行一些任务。如果没有互联网就停止了。是否有线路检查互联网连接,那么我可以给用户一条消息,将设备连接到互联网?
答案 0 :(得分:4)
首先,您需要获得许可才能知道设备是否已连接到网络。这需要在你的清单中,在元素中:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
然后 ConnectivityManager 的getActiveNetworkInfo()
方法返回一个实例,该实例代表它可以找到的第一个连接的网络接口,如果没有连接,则返回null
。检查此方法是否返回null应该足以判断是否有可用的Internet连接。
private boolean isDeviceConnected() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfoActive = connectivityManager.getActiveNetworkInfo();
return networkInfoActive != null && networkInfoActive.isConnected();
}
在此之后,您应该创建一个方法或将以下代码放入onCreate()
方法以显示警报。
if (isDeviceConnected()) {
// do whatever you want to do
} else {
try {
AlertDialog alertDialog = new AlertDialog.Builder(con).create();
alertDialog.setTitle("Info");
alertDialog
.setMessage("Internet not available, Cross check your internet connectivity and try again");
alertDialog.setIcon(R.drawable.alerticon);
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
alertDialog.show();
} catch (Exception e) {
Log.d(Constants.TAG, "Show Dialog: " + e.getMessage());
}
}
答案 1 :(得分:0)
您可以尝试以下代码:
ConnectivityManager manager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo i = manager.getActiveNetworkInfo();
boolean hasConnection = (i != null && i.isConnected() && i.isAvailable());
context
应该是有效的Context
对象。例如Activity
。