导航:首页 > 手机网络 > android判断手机网络

android判断手机网络

发布时间:2022-09-04 09:49:13

㈠ android 判断是否有网络连接

我们在做访问的时候都得进行判断是否连网。判断连网也比较简单,就用到了两个类。ConnectivityManager和NetworkInfo。

只要执行下面的代码就可以了。

1
2
3
4
5

ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
boolean isWifiConn = networkInfo.isConnected();
networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
boolean isMobileConn = networkInfo.isConnected();

只要有一个连接就是有网,NetworkInfo就是网络的信息。还有一种更简便的判断是否连网的方法。

1
2

ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();

在一个就是监听网络变化,就是设置一个广播。

注册广播,监听ConnectivityManager.CONNECTIVITY_ACTION这个action

1
2
3

IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
receiver = new NetworkReceiver();
context.registerReceiver(receiver, filter);

再实现一个广播类就可以了。这样网络一变化,就会受到广播,然后执行对应操作了。

1
2
3
4
5
6
7

public class NetworkReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("TAG", "intent============>>>>" + intent.toString());

}
}

下面就是来说一下判断手机网络的类型了,2G,3G,4G

关于网络类型,在得到networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);这个后,确定是手机网络后,通过networkInfo.getSubtype()会得到网络的类型,用networkInfo.getSubtypeName()会得到网络的名字。

我们通过这个networkInfo.getSubtype()得到的类型来判断当前是什么网络。

其实,Android的Api中已经定义了各种网络状态,不是在ConnectivityManager里面定义的,而是在TelephonyManager里面的定义的。通过不同的api版本的修改,目前增加到了14个状态值:

下面是通过自己查资料,和看别人查资料实验得来的。整理如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86

--------------------Added in API level 1---------------------
public static final int NETWORK_TYPE_UNKNOWN
Network type is unknown
Constant Value: 0 (0x00000000)
(不知道网络类型)

public static final int NETWORK_TYPE_GPRS
Current network is GPRS
Constant Value: 1 (0x00000001)
(2.5G)移动和联通

public static final int NETWORK_TYPE_EDGE
Current network is EDGE
Constant Value: 2 (0x00000002)
(2.75G)2.5G到3G的过渡 移动和联通

public static final int NETWORK_TYPE_UMTS
Current network is UMTS
Constant Value: 3 (0x00000003)
(3G)联通

-----------------Added in API level 4---------------------
public static final int NETWORK_TYPE_CDMA
Current network is CDMA: Either IS95A or IS95B
Constant Value: 4 (0x00000004)
(2G 电信)

public static final int NETWORK_TYPE_EVDO_0
Current network is EVDO revision 0
Constant Value: 5 (0x00000005)
( 3G )电信

public static final int NETWORK_TYPE_EVDO_A
Current network is EVDO revision A
Constant Value: 6 (0x00000006)
(3.5G) 属于3G过渡

public static final int NETWORK_TYPE_1xRTT
Current network is 1xRTT
Constant Value: 7 (0x00000007)
( 2G )

---------------------Added in API level 5--------------------
public static final int NETWORK_TYPE_HSDPA
Current network is HSDPA
Constant Value: 8 (0x00000008)
(3.5G )

public static final int NETWORK_TYPE_HSUPA
Current network is HSUPA
Constant Value: 9 (0x00000009)
( 3.5G )

public static final int NETWORK_TYPE_HSPA
Current network is HSPA
Constant Value: 10 (0x0000000a)
( 3G )联通

--------------------------Added in API level 8-------------------------
public static final int NETWORK_TYPE_IDEN
Current network is iDen
Constant Value: 11 (0x0000000b)
(2G )

--------------------------Added in API level 9-------------------------
public static final int NETWORK_TYPE_EVDO_B
Current network is EVDO revision B
Constant Value: 12 (0x0000000c)
3G-3.5G

--------------------------Added in API level 11------------------------
public static final int NETWORK_TYPE_LTE
Current network is LTE
Constant Value: 13 (0x0000000d)
(4G)

public static final int NETWORK_TYPE_EHRPD
Current network is eHRPD
Constant Value: 14 (0x0000000e)
3G(3G到4G的升级产物)

--------------------------Added in API level 13---------------------------
public static final int NETWORK_TYPE_HSPAP
Current network is HSPA+
Constant Value: 15 (0x0000000f)
( 3G )

㈡ Android中如何简单检测网络是否连接

权限:

<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>

代码:

/*
*判断网络连接是否已开
*true已打开false未打开
**/
publicstaticbooleanisConn(Contextcontext){
booleanbisConnFlag=false;
ConnectivityManagerconManager=(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfonetwork=conManager.getActiveNetworkInfo();
if(network!=null){
bisConnFlag=conManager.getActiveNetworkInfo().isAvailable();
}
returnbisConnFlag;
}


/*没有网络跳转到网络设置页面
*打开设置网络界面
**/
(finalContextcontext){
//提示对话框
AlertDialog.Builderbuilder=newAlertDialog.Builder(context);
builder.setTitle("网络设置提示").setMessage("网络连接不可用,是否进行设置?").setPositiveButton("设置",newDialogInterface.OnClickListener(){

@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
//TODOAuto-generatedmethodstub
Intentintent=null;
//判断手机系统的版本即API大于10就是3.0或以上版本
if(Build.VERSION.SDK_INT>10){
intent=newIntent(Settings.ACTION_WIRELESS_SETTINGS);
}else{
intent=newIntent();
ComponentNamecomponent=newComponentName("com.android.settings","com.android.settings.WirelessSettings");
intent.setComponent(component);
intent.setAction("android.intent.action.VIEW");
}
context.startActivity(intent);
}
}).setNegativeButton("取消",newDialogInterface.OnClickListener(){

@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
//TODOAuto-generatedmethodstub
dialog.dismiss();
}
}).show();
}

㈢ android 判断当前是否有网络

NetworkInfo networkInfo = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE).getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()){
//有网络以及网络类型
if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI){
//wifi
}else if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE){
//移动网络
}
} else {
//无网络
}

==希望能对你有用,望采纳

㈣ 怎样用手机测网速 安卓手机测网速的方法推荐

据了解,85%以上的年轻人都是低头族,无论是坐车还是散步都离不开手机,于是手机网速就成为大家关注的问题了,那么, 怎样用手机测网速 呢?下面我们就来详细介绍一下: 怎样用手机测网速 以及安卓手机测网速的方法推荐?希望可以给你们一些帮助和启示!

怎样用手机测网速

一:怎样用手机测网速---使用测速工具进行测速

1、要先上网下载一个专用的测速软件,比如:在网络上搜索“网速测试”,便会出现很多软件,要选择口碑比较好的软件下载。

2、等下载好之后,要进行安装,然后打开测速软件,再点击“开始测速”按钮,这样就开始测速了。

3、等测速好之后,就显示你当前的网速。

二:怎样用手机测网速---使用下载件的测速功能进行测速

1、要先下载一个迅雷测速软件,然后打开,再选择“设置”按钮,在弹出的菜单中选择“网速测试”,进入测速页面。

2、在测速页面中,再点击“开始测试”按钮,进行网速的测试。

3、稍等片刻,网速结果就显示出来了。

注意事项:

再测试时,它的结果并不是困定的,而是会根据环境而有所改变。此外,最好在有WiFi时在进行,以免流量超支给自己带来麻烦。

三、怎样用手机测网速---手机测试网速方法

1、在使用手机测试网速时要先下载speedtest应用,然后进行安装,等好了之后,在进行测速或通过手机助手搜索网速测试应用。

2、然后下载安装应用

3、等完成后进入手机界面,进入应用。

4、进入Speedtest应用之后,就能看到Begin Test或开始等字样了,点击开始测试网速即可。

5、等完成之后,进入页面,就能看到当前网络的的PING值以及上行、下载速度了,再点击表盘下方的"Restart Test"按钮就能重新测速了。

注意事项:

有了测速软件之后,就可以随时随地查看手机的网速状况了。

文章总结: 怎样用手机测网速 以及安卓手机测网速的方法推荐的相关知识就介绍到这里了,其实,手机测试网速的方法很简单,只要下载好网速测试软件,再根据软件的提示一步一步完成操作,这样就能了解手机当前的网速状况了。

㈤ android 怎么判断网络状态

获取android系统的连接服务可判断网络连接状态,代码如下
public class NetUtils{
public static boolean isNetworkConnected(Context context){
ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] infos = cm.getAllNetworkInfo();
for(NetworkInfo info:infos){
if(info.isAvailable()&&info.isConnected()){
return true;
}
}
return false;
}
}

NetworkInfo的isAvailable()和isConnected()有以下5种状态:
在WLAN设置界面
1,显示连接已保存,但标题栏没有,即没有实质连接上:isConnected()==false,isAvailable()=true
2,显示连接已保存,标题栏也有已连接上的图标:isConnected()==true,isAvailable()=true
3,选择不保存后:isConnected()==false,isAvailable()=true
4,选择连接,在正在获取IP地址时:isConnected()==false,isAvailable()=false
5,连接上后:isConnected()==true,isAvailable()=true

㈥ Android之判断手机连接的网络类型是WIFI还是2G/3G/4G

wifi上网
不需要用到手机号码的流量啊,有
wifi网络
资源肯定是用wifi好,但是没有资源的情况只能用2G/3G的了,建议要用wifi的时候把手机网络关闭,避免wifi网络不稳定扣取了手机的流量。

㈦ 如何判断Android手机当前是否联网

通知栏可以看见,每个手机显示方式不同,有的在信号格有上下箭头标志,就是数据传输.有上网它会动.还有就是下拉通知栏的快捷设置可以看有没有开数据.最通用的办法就是打开设置-无线和网络-数据连接..看看有没有打开.每个手机不同,方法也不同.希望能帮到你.

㈧ android 如何判断网络是否能够上网

实现步骤:
下面解决办法来自于android学习手册,android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行,源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。360手机助手中下载。排到第三个。
1、获取ConnectivityManager对象
Context context = activity.getApplicationContext();
// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

2、获取NetworkInfo对象
// 获取NetworkInfo对象
NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();

3、判断当前网络状态是否为连接状态
if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)
{
return true;
}

4、在AndroidManifest.xml中添加访问当前网络状态权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>

代码如下:

public class ClassTestDemoActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if (isNetworkAvailable(ClassTestDemoActivity.this))
{
Toast.makeText(getApplicationContext(), "当前有可用网络!", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(), "当前没有可用网络!", Toast.LENGTH_LONG).show();
}
}

/**
* 检查当前网络是否可用
*
* @param context
* @return
*/

public boolean isNetworkAvailable(Activity activity)
{
Context context = activity.getApplicationContext();
// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

if (connectivityManager == null)
{
return false;
}
else
{
// 获取NetworkInfo对象
NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();

if (networkInfo != null && networkInfo.length > 0)
{
for (int i = 0; i < networkInfo.length; i++)
{
System.out.println(i + "===状态===" + networkInfo[i].getState());
System.out.println(i + "===类型===" + networkInfo[i].getTypeName());
// 判断当前网络状态是否为连接状态
if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)
{
return true;
}
}
}
}
return false;
}
}

㈨ android判断网络是否连接

返回ture表示网络可用

// 检测网络

public static boolean checkNetworkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
NetworkInfo netWorkInfo = info[i];
if (netWorkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
return true;
} else if (netWorkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
return true;
}
}
}
}
}

return false;

}

㈩ 如何判断android手机当前是否联网

下面的方法返回false表示网络不通

// 检测网络
public static boolean checkNetworkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
NetworkInfo netWorkInfo = info[i];
if (netWorkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
return true;
} else if (netWorkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
return true;
}
}
}
}
}

return false;

}

阅读全文

与android判断手机网络相关的资料

热点内容
如何设网络监护人 浏览:424
网络连锁是什么 浏览:436
电脑游客登录能连接无线网络吗 浏览:243
有6g网络手机 浏览:870
跑美团手机用哪个网络套餐适用 浏览:254
无线网络共享的问题 浏览:961
魔百和q5网络机顶盒设置 浏览:912
联想s2没有无线网络图标了 浏览:368
电脑重新连接网络 浏览:920
网络营销优化师 浏览:551
设置首选网络类型nr 浏览:448
网络书法投票设置 浏览:796
最好网络安全手抄报 浏览:391
手机全网通是不是4g网络 浏览:498
网络轻小说多少章 浏览:821
不用移动网络是什么意思 浏览:539
手机连接收音机用蓝牙网络吗 浏览:759
以下哪个不是网络银行的特点 浏览:995
和平精英请检查网络设置 浏览:273
qq邮箱设定密码网络连接不可用 浏览:239

友情链接