import java.net.InetAddress;

import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.widget.ScrollView;
import android.widget.TextView;

public class NetAct extends Activity {
        private TextView textView;

public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                textView = new TextView(this);
                textView.setBackgroundColor(0xffffffff);
                textView.setTextColor(0xff0000ff);
                textView.setTextSize(15.0f);
                textView.setScrollBarStyle(TextView.SCROLLBARS_OUTSIDE_OVERLAY);

ScrollView scrollView = new ScrollView(this);
                scrollView.addView(textView);
                setContentView(scrollView);
                getLocalHost();
                getWifiInfo();
                initNetworkInfo();
        }

private void getLocalHost() {
                try {
                        InetAddress iAdd = InetAddress.getLocalHost();
                        String line = "";
                        String hostName = iAdd.getHostName();
                        if (hostName != null) {
                                InetAddress[] adds = InetAddress.getAllByName(hostName);
                                for (int i = 0; i < adds.length; i++) {
                                        iAdd = adds[i];
                                        line = "HostName=" + iAdd.getHostName() + "\n";
                                        textView.append(line);
                                        line = "CanonicalHostName=" + iAdd.getCanonicalHostName()
                                                        + "\n";
                                        textView.append(line);
                                        line = "HostAddress=" + iAdd.getHostAddress() + "\n";
                                        textView.append(line);
                                        textView.append("\n");
                                }
                        }
                } catch (Exception e) {
                        e.printStackTrace();

}
        }

public void getWifiInfo() {
                WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
                WifiInfo info = wifi.getConnectionInfo();
                textView.append("HiddenSSID=" + info.getHiddenSSID() + "\n");
                textView.append("IpAddress=" + info.getIpAddress() + "\n");
                textView.append("LinkSpeed=" + info.getLinkSpeed() + "\n");
                textView.append("NetworkId=" + info.getNetworkId() + "\n");
                textView.append("Rssi=" + info.getRssi() + "\n");
                textView.append("SSID=" + info.getSSID() + "\n");
                textView.append("MacAddress=" + info.getMacAddress() + "\n");
        }

public void initNetworkInfo() {
                ConnectivityManager mag = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
                // 此处输出当前可用网络
                textView.append("\nActive:\n");
                NetworkInfo info = mag.getActiveNetworkInfo();
                textView.append("ExtraInfo=" + info.getExtraInfo() + "\n");
                textView.append("SubtypeName=" + info.getSubtypeName() + "\n");
                textView.append("TypeName=" + info.getTypeName() + "\n");

textView.append("\nWifi:\n");
                NetworkInfo wifiInfo = mag
                                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);

textView.append("ExtraInfo=" + wifiInfo.getExtraInfo() + "\n");
                textView.append("SubtypeName=" + wifiInfo.getSubtypeName() + "\n");
                textView.append("TypeName=" + wifiInfo.getTypeName() + "\n");
                NetworkInfo mobInfo = mag
                                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
                textView.append("\nMobile:\n");
                textView.append("ExtraInfo=" + mobInfo.getExtraInfo() + "\n");
                textView.append("SubtypeName=" + mobInfo.getSubtypeName() + "\n");
                textView.append("TypeName=" + mobInfo.getTypeName() + "\n");
        }
}

在AndroidManifest.xml中增加:

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

android 网络状态判断【转】的更多相关文章

  1. Android 网络连接判断与处理

    Android网络连接判断与处理  获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="and ...

  2. 如何消除原生Android网络状态上的惊叹号

    喜欢使用原生Android系统的朋友可能会发现自己的状态栏信号图标上经常有一个惊叹号标志. 这是怎么回事呢?原因是Android为了对网络状态进行检测,采用了一种叫做captive detection ...

  3. Android杂谈--网络状态判断

    许多联网应用都在开始运行的时候检查当前网络状态,如果没有开启则去开启它,记录一下以前写程序时的网络检查,发现人的记忆力真是有限,总是隔段时间久忘记,所以记录下来是最好的记忆. 我们可以在一开始启动程序 ...

  4. Android网络连接判断与处理

    博客分类: Android 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android ...

  5. android 网络连接判断

    Android 网络判断类,用来判断网络状态 使用方法: (1)先初始化 //初始化网络状态检测类 NetworkStateManager.instance().init(this); (2)判断是否 ...

  6. Android网络状态监控

    Android 监控网络状态 在Android网络应用程序开发中,经常要判断网络连接是否可用,因此经常有必要监听网络状态的变化.android的网络状态监听可以用BroadcastReceiver来接 ...

  7. iOS中利用CoreTelephony获取用户当前网络状态(判断2G,3G,4G)

    前言: 在项目开发当中,往往需要利用网络.而用户的网络环境也需要我们开发者去注意,根据不同的网络状态作相应的优化,以提升用户体验. 但通常我们只会判断用户是在WIFI还是移动数据,而实际上,移动数据也 ...

  8. 利用CoreTelephony获取用户当前网络状态(判断2G,3G,4G)

    前言: 在项目开发当中,往往需要利用网络.而用户的网络环境也需要我们开发者去注意,根据不同的网络状态作相应的优化,以提升用户体验. 但通常我们只会判断用户是在WIFI还是移动数据,而实际上,移动数据也 ...

  9. iOS中利用CoreTelephony获取用户当前网络状态(判断2G,3G,4G) by徐文棋

    前言: 在项目开发当中,往往需要利用网络.而用户的网络环境也需要我们开发者去注意,根据不同的网络状态作相应的优化,以提升用户体验. 但通常我们只会判断用户是在WIFI还是移动数据,而实际上,移动数据也 ...

随机推荐

  1. pyspark 写 logistic regression

    import random as rd import math class LogisticRegressionPySpark: def __init__(self,MaxItr=100,eps=0. ...

  2. Pet(dfs+vector)

    Pet Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  3. springMVC3学习(四)--訪问静态文件如js,jpg,css

    假设你的DispatcherServlet拦截的是*.do这种URL.就不存在訪问不到静态资源的问题 假设你的DispatcherServlet拦截了"/"全部的请求,那同一时候对 ...

  4. EMCA创建em资料库时报错

    说明:监听程序配置及启动正常.实例运行正常,远程或是本地sqlplus连接实例也正常.主机名显示正常,与主机名相关三个配置文件也没问题. emca报错: [oracle@rusky-oracle11g ...

  5. JavaScript检测原始值、引用值、属性

    上周写过一篇读书笔记<编写可维护的JavaScript>之编程实践,其中 第8章 避免『空比较』是博主在工作中遇坑较多的雷区,所以特此把该章节重新整理分享,希望大家不再坑队友(>﹏& ...

  6. Fiddler 跟踪 手机页面数据包

    随着 HTML5 的急速增长,现在越来越多的人,开始涉及到移动终端的 Web 开发领域,但手机端始终没有 PC 端这么多的调试工具.即使 PC 端浏览器模拟 user-agent 进行开发,也可能会发 ...

  7. Linux学习4——Vim和Bash

    一.写在前面  本将将介绍Linux自带的强大的文本编辑器Vim和Bash的相关知识. 二.完成目标 1.了解Vim和Bash的基本概念 2.定制自己的vim 3.Bash中的一些命令 4.管道命令 ...

  8. Android开发环境的搭建之(三)虚拟设备AVD的创建

    选择AVD Manager选项,启动创建AVD向导.根据开发要求创建制定配置的虚拟设备. 设置屏幕大小为17寸,480X800 设置系统映像为API17,X86. 设置AVD Name为MyPhone ...

  9. asp.net 两个页面之前传递数据

    .在两个表单之间传递数据 看下面的代码: 对于WebForm1: private void Page_Load(object sender, System.EventArgs e) { ArrayLi ...

  10. c#中的数据类型简介(数组)

    c#中的数据类型简介(数组) 数组定义 可以将数组看成相同数据类型的一组或多组数据,包括一维数组,多维数组和交错数组. 数值数组元素的默认值设置为零,而引用元素的默认值设置为 null. 交错数组是指 ...