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. inet address example(socket)

    package com.opensource.socket; import java.net.Inet4Address; import java.net.Inet6Address; import ja ...

  2. vmware配置安装JDK、Tomcat以及项目部署

    1.安装JDK1.7 JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 安 ...

  3. Java实现二叉搜索树的添加,前序、后序、中序及层序遍历,求树的节点数,求树的最大值、最小值,查找等操作

    什么也不说了,直接上代码. 首先是节点类,大家都懂得 /** * 二叉树的节点类 * * @author HeYufan * * @param <T> */ class Node<T ...

  4. OMNeT++安装教程

    前提及注意事项: 1) 安装之前首先要确定已经安装好GCC编译环境(例如:MinGW.Cygwin,选择一种安装); (否则OMNeT++会安装不成功),具体安装教程详见另一篇文章 MinGW安装教程 ...

  5. iOS GCD详解

    前言 对初学者来说,GCD似乎是一道迈不过去的坎,很多人在同步.异步.串行.并行和死锁这几个名词的漩涡中渐渐放弃治疗.本文将使用图文表并茂的方式给大家形象地解释其中的原理和规律. 线程.任务和队列的概 ...

  6. 命名空间“Aspose”中不存在类型或命名空间名称“Slides”。

    有可能引用的dll与项目的 .netFramework版本不同,需要确认两个版本是否相同.如果不同,项目右键->属性->应用程序.选择和引用的dll相同的版本.

  7. C语言---整型字符串转换

    C语言提供了几个标准库函数,能够将随意类型(整型.长整型.浮点型等)的数字转换为字符串.下面是用itoa()函数将整数转 换为字符串的一个样例: # include <stdio.h>   ...

  8. 为什么VS提示SurfFeatureDetector不是cv的成员函数

    surf和sift算法都是在头文件#include <opencv2/features2d/features2d.hpp>中,但在新的opencv版本出来后,如果仍然使用这个头文件就会出现 ...

  9. Android 动画之ScaleAnimation应用具体解释

    android中提供了4中动画: AlphaAnimation 透明度动画效果 ScaleAnimation 缩放动画效果 TranslateAnimation 位移动画效果 RotateAnimat ...

  10. 对FineU框架Grid多表头合计行导出Excel的回顾

    年前用FineUI开发遇到了这样一个问题,Grid多表头合计行不能导出,后面到官方示例找了一下,庆幸的是找到了多表头的导出示例.然后当时为了省事,直接就复制粘贴完事,也没有仔细的研究代码.后来运行一看 ...