如何检查手机的分组数据是否已连接。因为当我在我的Android应用程序上启用移动数据选项时,即使我的SIM卡没有任何负载,它也始终连接。我的问题是如何验证我的Android应用程序中是否存在互联网连接。
这是我的代码。
ConnectivityManager cm = (ConnectivityManager)this.GetSystemService(Context.ConnectivityService);
NetworkInfo nf = cm.ActiveNetworkInfo;
if (nf != null && nf.IsConnected == true)
{
//connected
}
else
{
//not connected
}
但是在这段代码中。即使我没有负载。我的应用程序显示我仍然连接。帮帮忙..
答案 0 :(得分:1)
试试这个:
boolean internetCheck;
internetCheck = isInternetAvailable(this);
if (internetCheck) {
//Internet available
} else {
//No Internet available }
/**
*
* Method to check internet connection is available
*/
public static boolean isInternetAvailable(Context context) {
boolean haveConnectedWifi = false;
boolean haveConnectedMobile = false;
boolean connectionavailable = false;
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
NetworkInfo informationabtnet = cm.getActiveNetworkInfo();
for (NetworkInfo ni : netInfo) {
try {
if (ni.getTypeName().equalsIgnoreCase("WIFI"))
if (ni.isConnected())
haveConnectedWifi = true;
if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
if (ni.isConnected())
haveConnectedMobile = true;
if (informationabtnet.isAvailable()
&& informationabtnet.isConnected())
connectionavailable = true;
} catch (Exception e) {
// TODO: handle exception
System.out.println("Inside utils catch clause , exception is"
+ e.toString());
e.printStackTrace();
}
}
return haveConnectedWifi || haveConnectedMobile;
}
答案 1 :(得分:0)
试试这个
//call web service
ConnectivityManager con=(ConnectivityManager)getSystemService(Activity.CONNECTIVITY_SERVICE);
boolean wifi=con.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
boolean internet=con.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();
//check Internet connection
if(internet||wifi)
{
Toast.makeText(this, "Connected", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this, "Not Connected", Toast.LENGTH_SHORT).show();
}
还要向您的清单文件添加以下权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
答案 2 :(得分:0)
Try this one.
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager
.getActiveNetworkInfo();
boolean isActive=activeNetworkInfo != null && activeNetworkInfo.isConnected();
if(isActive)
{
System.out.print("Connection Establied");
}
else{
System.out.print("Connection not Establied");
}
答案 3 :(得分:0)
试试这个
public class ConnectionDetector {
private Context _context;
public ConnectionDetector(Context context){
this._context = context;
}
public boolean isConnectingToInternet(){
ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null)
{
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED)
{
return true;
}
}
return false;
}
}
并在活动文件中
ConnectionDetector cd= new ConnectionDetector(context);
boolean isInternetPresent = cd.isConnectingToInternet();
如果存在互联网,它将返回true
答案 4 :(得分:0)
我认为在您的情况下此链接可能会对您有所帮助
How can I receive a notification when the device loses network connectivity?
检查互联网连接的最佳方法是发送请求,看看是否有任何回复。