我的项目中要用到网络连接,可是我用了下面两种方式都无法判断,明明我把网线拔了还是告诉我网络已经连接,权限也给了,请问是哪个地方写错了吗?我就差这个了,有回复马上结贴。谢谢了!
第一种方法 public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);final TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
mTelephonyMgr.listen(new PhoneStateListener() {
@Override
public void onDataConnectionStateChanged(int state) {
switch (state) {
case TelephonyManager.DATA_DISCONNECTED:// 网络断开
Toast.makeText(MyGongxf.this, "您暂时没有可用的网络,请检查网络",
Toast.LENGTH_SHORT).show();
break;
case TelephonyManager.DATA_CONNECTING:// 网络正在连接
break;
case TelephonyManager.DATA_CONNECTED:// 网络连接上
Toast.makeText(MyGongxf.this, "网络连接上",
Toast.LENGTH_SHORT).show();
break;
}
}
}, PhoneStateListener.LISTEN_DATA_CONNECTION_STATE); }第二种方法
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
boolean b = isConnectInternet();
if (!b) {
Toast.makeText(MyGongxf.this, "您暂时没有可用的网络,请检查网络",
Toast.LENGTH_SHORT).show();
}
}
public boolean isConnectInternet() {
boolean netSataus = false;
ConnectivityManager conManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = conManager.getActiveNetworkInfo();
if (networkInfo != null) { // 注意,这个判断一定要的哦,要不然会出错
netSataus = networkInfo.isAvailable();}
return netSataus;
}
第一种方法 public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);final TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
mTelephonyMgr.listen(new PhoneStateListener() {
@Override
public void onDataConnectionStateChanged(int state) {
switch (state) {
case TelephonyManager.DATA_DISCONNECTED:// 网络断开
Toast.makeText(MyGongxf.this, "您暂时没有可用的网络,请检查网络",
Toast.LENGTH_SHORT).show();
break;
case TelephonyManager.DATA_CONNECTING:// 网络正在连接
break;
case TelephonyManager.DATA_CONNECTED:// 网络连接上
Toast.makeText(MyGongxf.this, "网络连接上",
Toast.LENGTH_SHORT).show();
break;
}
}
}, PhoneStateListener.LISTEN_DATA_CONNECTION_STATE); }第二种方法
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
boolean b = isConnectInternet();
if (!b) {
Toast.makeText(MyGongxf.this, "您暂时没有可用的网络,请检查网络",
Toast.LENGTH_SHORT).show();
}
}
public boolean isConnectInternet() {
boolean netSataus = false;
ConnectivityManager conManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = conManager.getActiveNetworkInfo();
if (networkInfo != null) { // 注意,这个判断一定要的哦,要不然会出错
netSataus = networkInfo.isAvailable();}
return netSataus;
}
解决方案 »
- Android ListView在滚动的时候上下边界会出现模糊效果,怎么去除啊?
- android双卡机apn拨号问题
- Android中怎样由图片的id号R.drawable.XX得到图片文件XX的绝对路径
- alertdialog背景异常
- android上调用摄像头并且在在上边绘制一个框图,例如假如是人脸的话,在脸上绘制个框图!请问怎么解决呢?
- Android中的使用SurfaceView时候的刷新的问题
- 请问各位大侠,关于Intent使用问题
- 开发考虑不考虑用户到程序设置中清除数据,清除数据后sharedpreference中的配置就都没了
- 别人做好的项目,修改代码后,重新运行后还是和原来一样
- 请指教:android的WifiP2PManager里CreateGroup方法用处?
- 关于测试类Instrumentation!!!
- 100分求:通过webview的本地html5播放mp3问题。
<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>
我试过第二种,在我G7上可以判断。
public static NetworkInfo getAvailableNetWorkInfo(Context context) {
if(context == null){
return null;
}
ConnectivityManager connectivityManager = (ConnectivityManager)context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetInfo != null && activeNetInfo.isAvailable()) {
return activeNetInfo;
}else{
return null;
}
}然后去看NetInfo对象的内容
能把调用的方法也写出来吗?谢谢了
mcontext=this.getApplicationContext();
NetworkInfo net= getAvailableNetWorkInfo(mcontext);但是net的内容不管怎样都不是null,应该判断net的什么内容呢?
谢谢了
Context mcontext;
mcontext=this.getApplicationContext();
NetworkInfo net= getAvailableNetWorkInfo(mcontext);net的内容不管怎样都不是null,应该判断net的什么内容呢?
谢谢了
if (activeNetInfo != null && activeNetInfo.isAvailable()) {
return true;
}else{
return false;
}
这样做是没有问题的。只有点小问题,虽然网络显示是通的,但有可能无法真正连接internet,它也会返回true。
如果有可能的话,你用真机试试。
我就是用真机测的,明明打开的网页显示找不到地址,程序却不提示网络异常
然后用模拟器测试也是,把网线都拔了它还是返回true.
请问这该怎么办呢?谢谢了!
还是正常,我用activeNetInfo.isConnected()和activeNetInfo.isConnectedOrConnecting()方法。这样测试的话在真机上如果人工把移动网络关闭了,它能够测试出来,但是如果网络不好的话应该如何判断呢?比如说在我打开一个网页时间很长了还没有打开,那么就应该可以说现在网络不好,这样就需要提醒用户,可在android上怎么判断呢?
谢谢了
ReaderPreferences.load(mActivity);
boolean isOffLine = true;
isOffLine = ReaderPreferences.getLoginMode();
.getActiveNetwork(LogonActivity.this);
if (null != networkInfo && networkInfo.isAvailable())
{
// 跳转到注册页面
Intent intent = new Intent();
intent.setAction(SuningTabActivity.GO_REGISTER);
sendBroadcast(intent);
}
else
{
displayToast(R.string.network_exception);
}--------------------------------------------------------------------------------
public static NetworkInfo getActiveNetwork(Context context)
{
if (context == null)
{
return null;
}
ConnectivityManager mConnMgr = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (mConnMgr == null)
{
return null;
}
NetworkInfo aActiveInfo = mConnMgr.getActiveNetworkInfo();
// 获取活动网络连接信息
return aActiveInfo;
}
可以检测到无线网络包括wifi 3G等等
但是连接网线就检测不到,永远是网络连接OK。我是做机顶盒开发的的 现在一个功能是从登录页面到注册页面,因为注册页面有一个图形校验码(网络获取),所以断网就不让跳到注册页面。各位大牛,怎么检测有线网来连接失败?