Android 互联网连接
我正在使用ConnectionManager。我不知道我的代码会发生什么,如果连接到internet,它总是返回null。请帮帮我Android 互联网连接,android,Android,我正在使用ConnectionManager。我不知道我的代码会发生什么,如果连接到internet,它总是返回null。请帮帮我 public static boolean isOnline(Context ctx) { // Toast.makeText(ctx,"get", Toast.LENGTH_LONG).show(); ConnectivityManager mManager = (ConnectivityManager) ctx .getS
public static boolean isOnline(Context ctx) {
// Toast.makeText(ctx,"get", Toast.LENGTH_LONG).show();
ConnectivityManager mManager = (ConnectivityManager) ctx
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mManager.getActiveNetworkInfo();
if ((mNetworkInfo != null) && (mNetworkInfo.isConnected())) {
return true;
}
return false;
}
if (NetworkConnection.isOnline(TIENews.this)) {
new GetNewsDetailAsyncTask(TIENews.this, url, newsListView)
.execute();
} else {
Log.e("tag", "netIno return null");
super.OpenWiFiDialog(getResources().getString(
R.string.internet_error_msg));
}
}
谢谢,亲爱的。我的代码在今天之前运行良好,应用程序也在运行。但是我不知道从最后几天到现在这段代码中发生了什么,所以无法运行。而且我没有遇到问题代码似乎很好。我认为上下文存在问题,即上下文为空,或者清单中的Internet权限为空。。因此,请检查它。这是检查网络是否存在的方法:
ConnectivityManager
方法1
public boolean isConnected(){
boolean result=false;
ConnectivityManager cm = (ConnectivityManager) getApplicationContext()
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (null != activeNetwork) {
if(activeNetwork.getType() == ConnectivityManager.TYPE_WIFI)
{
result=true;
msg="You are connected to a WiFi Network";
}
if(activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE)
{
result=true;
msg="You are connected to a Mobile Network";
}
}
else{
msg = "No internet Connectivity";
result=false;
}
return result;
}
方法2
public boolean isConnected() {
ConnectivityManager cm = (ConnectivityManager) getApplicationContext()
.getSystemService(Context.CONNECTIVITY_SERVICE);
// test
if (cm.getActiveNetworkInfo() != null
&& cm.getActiveNetworkInfo().isAvailable()
&& cm.getActiveNetworkInfo().isConnected()) {
msg="You are connected to a Network";
return true;
} else {
msg = "No internet Connectivity";
return false;
}
}
将以下行添加到您的清单:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
我在您的代码中找不到任何错误。可能是上下文为空 或者你可以简单地尝试这行代码来检查互联网连接
// by default - its false
private boolean isInternetConnected = false;
// Check the internet connectivity
isInternetConnected = Utilities.isInternetAvailable(MainActivity.this);
if(isInternetConnected){
// perform here
}
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) {
System.out.println("Inside utils catch clause , exception is"
+ e.toString());
e.printStackTrace();
}
}
return haveConnectedWifi || haveConnectedMobile;
}
还要在清单中添加Internet权限。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
public boolean isNetwokReachable() {
ConnectivityManager connectivityManager = (ConnectivityManager) mSmartAndroidActivity.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo() .isConnected()) {
return true;
} else {
return false;
}
}
公共类连接检测器{
私人语境(private Context)(私人语境);;
公共连接检测器(上下文){
这._context=context;
}
公共布尔值未连接到Internet(){
ConnectionManager连接=(ConnectionManager)\u上下文
.getSystemService(Context.CONNECTIVITY\u服务);
if(连接性!=null){
NetworkInfo[]info=connectivity.getAllNetworkInfo();
如果(信息!=null)
对于(int i=0;i
试试这种方法,希望这能帮助您解决问题。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
public boolean isNetwokReachable() {
ConnectivityManager connectivityManager = (ConnectivityManager) mSmartAndroidActivity.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo() .isConnected()) {
return true;
} else {
return false;
}
}
在AndroidManifest.xml中添加以下所需权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
签入清单以获取Internet权限。此外,您的数据计划/wi-fi已连接或没有连接?您是否已将权限传递getApplicationContext()
作为上下文添加到您的isOnline(getApplicationContext())