【问题标题】:How to check My test android device is connected to internet or not?如何检查我的测试安卓设备是否连接到互联网?
【发布时间】:2015-09-08 05:40:47
【问题描述】:
protected boolean isOnline()
{
ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();
if (info != null && info.isConnectedOrConnecting()) {
return true;
}else
{
return false;
}
}
public void requestData()
{
if (isOnline())
{
Toast.makeText(getApplicationContext(), "connected", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(), "Niot Connected", Toast.LENGTH_LONG).show();
}
}
我已经编写了这段代码,但我收到了类似“不幸的是您的程序已停止”之类的错误。请帮助我..
提前致谢
【问题讨论】:
标签:
android
android-internet
【解决方案1】:
您需要将此添加到您的androidmanifest.xml
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
【解决方案3】:
调用这个方法
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
并声明许可
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
【解决方案4】:
这是适合我的代码。在你的 utils 中定义这个类。
public class InternetConnection {
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivityManager
= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
}
然后,在要检查连接状态的 Activity 中,使用,
if(!(InternetConnection.isNetworkAvailable(this))){
internetActive = false;
Toast.makeText(this, "Please try again with active Internet connection", Toast.LENGTH_LONG).show();
}
else {
// your code if device is connected to internet
}
确保你有
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
清单中的权限。
【解决方案5】:
您将通过以下两种方法检查WIFI和移动数据是否连接:
public boolean checkWIFIInternetConn() {
//Create object for ConnectivityManager class which returns network related info
ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
//If connectivity object is not null
if (connectivity != null) {
//Get network info - WIFI internet access
NetworkInfo info = connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (info != null) {
//Look for whether device is currently connected to WIFI network
if (info.isConnected()) {
return true;
}
}
}
return false;
}
public boolean checkMobileInternetConn() {
//Create object for ConnectivityManager class which returns network related info
ConnectivityManager connectivity = (ConnectivityManager) _context
.getSystemService(Context.CONNECTIVITY_SERVICE);
//If connectivity object is not null
if (connectivity != null) {
//Get network info - Mobile internet access
NetworkInfo info = connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (info != null) {
//Look for whether device is currently connected to Mobile internet
if (info.isConnected()) {
return true;
}
}
}
return false;
}