① 如何查看android手机的DNS域,IP地址等信息
参考网络经验上的相关操作方法:
:jingyan../article/9f7e7ec0b469af6f2815549a.
1打开手机设置界面,以荣耀6为例,从手机顶部向下拉,弹出界面中点击设置。
2在设置界面中,选择WLAN,查看可连接的wifi列表。
3长按已经连接的wifi名称,弹出修改网络对话框,并点击“修改网络”按钮。
4在弹出的对话框中,勾选中“显示高级选项”。
5随后下拉,在IP设置这一栏选择“静态”。
6界面继续往下拉,就可以看到域服务器和IP地址的设置界面了。
以android手机为例 , 在 设置 -> 关于手机 -> 状态消息 里面可以看到状态,包括IP地址等。但是看不到网关和DNS掩码之类的,因为都是自动获取的。
很简单,在设置里进入WLAN设置,再按手机menu键,屏幕下方出现小界旁散面有高级,进入高级,里面可以看到MAC地址 或者设置里,进入关于手机 ,然后选硬件信息,里面也可以看到MAC地址,这个方法同样适用于其它的Android平台的手机
Android查看MAC地址的方式:
在主屏幕上轻按“设置”按钮。或者,按下物理按钮“Menu”,选择“设置”。
在设置的列表下,轻按选择“关于本机”按钮。
然后,轻按“状态消息”按钮。
在状态中查看“Wi-Fi MAC 地址”。
同时也可在【WLAN】下查看MAC地址:
同样打开手机——【设置】——【无线网络】——【WLAN】
进入WLAN页面后,触摸手机【菜单键】选择——【高级】
在WLAN高级设置界面也可查看到MAC地址窜号。
Android查看MAC地址的方式:
1. 在主屏幕上轻按“设置”按钮。或者,按下物理按钮“Menu”,选择“设置”。
2. 在设置的列表下,轻按选择“关于本机”按钮。
3. 然后,轻按“状态消息”按钮。
4. 在状态中查看“Wi-Fi MAC 地址”。
同时也可在【WLAN】下查看MAC地址。
1. 同样打开手机——【设置】——【无线网络】——【WLAN】
2. 进入WLAN页面后,触摸手机【菜单键】选择——【高级】
3. 在WLAN高级设置界面也可查看到MAC地址串号。
第一步:右键点击桌面“网络”,单击“属性”,出现如下“网络和共享中心”。
第二步:在对应的连接后点击“查看状态”。(也可以点击“管理网络连接”,如果您是通过有线前扮的方式连接路由
器,请在“本地连接”上右键选择“属性”,如果您是通过无线连接路由器,请在“无线网络连接”上右键选择
“属性”,这里以无线为例。)
第三步:查看或修改本机IP地址信息。
1.查看本机IP地址信息
这里可以查看您本机无线网络连接的IP地址等信息,请检查IP地址、网关、DNS服务器地址是否配置正确,正确配置
为:
IP地址:192.168.1.X,(2≤X≤254)
子网掩码:255.255.255.0
网关:192.168.1.1
DNS服务器地址:向运营商咨询
2.修改本机IP地址信息
选择“Inter协议版本4(TCP/IPv4)”,点击“属性”。
设置IP地址和路由器同一网段,DNS服务器地址请向网络运营商咨询。
找到手机桌面里面的设置,点进去。
进去后再选择当前连接的 WIFI。
选择当前链接的wifi 就可以进入
选择后弹出一个界面,里面有wifi的信息
② 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如何获取网络连接状态及怎样调用网络配置界面
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class NetManager {
Context context;
public NetManager(Context context) {
this.context = context;
}
// 判断网络是否可用的方法
public boolean isOpenNetwork() {
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;
}
// 判断WIFI网络是否可用的方法
public boolean isOpenWifi() {
ConnectivityManager connManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return mWifi.isConnected();
}
}
public static void netManager(final Context a) {
netManager = new NetManager(a);
if (!netManager.isOpenNetwork()) {
// 如果网络不可用,则弹出对话框,对网络进行设置
Builder builder = new Builder(a);
builder.setTitle("没有可用的网络");
builder.setMessage("是否对网络进行设置?");
builder.setPositiveButton("确定",
new android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = null;
try {
String sdkVersion = android.os.Build.VERSION.SDK;
if (Integer.valueOf(sdkVersion) > 10) {
intent = new Intent(
android.provider.Settings.ACTION_WIRELESS_SETTINGS);
} else {
intent = new Intent();
ComponentName comp = new ComponentName(
"com.android.settings",
"com.android.settings.WirelessSettings");
intent.setComponent(comp);
intent.setAction("android.intent.action.VIEW");
}
a.startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
});
builder.setNegativeButton("取消",
null);
builder.show();
}else {
Toast.makeText(a, "网络不给力,请确认您的网络连接", Toast.LENGTH_LONG).show();
}
}
转载,仅供参考。
④ 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