本文出自:ttp://rayln.iteye.com/blog/1229665,谢谢作者的辛苦笔记!
package com.wifi;
import java.util.List;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo.State;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.util.Log;
public class NetChoice {
// String wifiSSID="FORTUNETONE";
Context context;
WifiManager wifiManager;
// WifiReceiver wifiReceiver;
public NetChoice(Context context) {
this.context = context;
wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
// wifiReceiver=new WifiReceiver();
// context.registerReceiver(wifiReceiver, new
// IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
}
/**
* 判断当前网络连接状态 0、无连接 1、3G 2、WIFI
*
* @return
* @author 2011-08-16
*/
public int checkNetworkInfo() {
int netType = 0;
ConnectivityManager conMan = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
.getState();
State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
.getState();
if (mobile == State.CONNECTED || mobile == State.CONNECTING) {
netType = 1;
}
if (wifi == State.CONNECTED || wifi == State.CONNECTING) {
netType = 2;
}
Log.d("carWifi", wifi + "---wifi--state--mobile--" + mobile
+ "---type--" + netType);
return netType;
}
/**
* WIFI勾选 开关
*
* @author 2011-08-16
*/
public void openWifi() {
boolean b = false;
if (!wifiManager.isWifiEnabled()) {
b = wifiManager.setWifiEnabled(true);
Log.d("carWifi", "---------open wifi --" + b);
} else {
Log.d("carWifi", "-----wifi was open!!--");
}
}
public void closeWifi() {
if (wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(false);
}
}
/**
* 添加WIFI信息
*
* @param wifiList
* 搜索到的wifi集合
* @param wifiSSID
* wifi名称
* @param pwd
* wifi密码
* @return wifiId
* @author 2011-08-16
*/
public int addWifiConfig(List<ScanResult> wifiList, String wifiSSID,
String pwd) {
int wifiId = -1;
if (wifiList != null) {
for (int i = 0; i < wifiList.size(); i++) {
ScanResult sr = wifiList.get(i);
if (sr.SSID.equals(wifiSSID)) {
WifiConfiguration wc = new WifiConfiguration();
wc.SSID = "\"" + wifiSSID + "\"";
wc.preSharedKey = "\"" + pwd + "\"";
wifiId = wifiManager.addNetwork(wc);
if (wifiId != -1) {
return wifiId;
}
}
}
}
return wifiId;
}
/**
* 连接wifi
*
* @param wifiId
* @return
* @author 2011-08-16
*/
public boolean connectWifi(int wifiId) {
for (int i = 0; i < wifiManager.getConfiguredNetworks().size(); i++) {
WifiConfiguration wc = wifiManager.getConfiguredNetworks().get(i);
if (wc.networkId == wifiId) {
return wifiManager.enableNetwork(wc.networkId, true);
}
}
return false;
}
public List<WifiConfiguration> getConnectionWifi(){
return wifiManager.getConfiguredNetworks();
}
public boolean addWifiConnection(String wifiSSID,String pwd){
boolean isConnection = false;
WifiConfiguration wc = new WifiConfiguration();
wc.SSID = "\"" + wifiSSID + "\"";
wc.preSharedKey = "\"" + pwd + "\"";
int wifiId = wifiManager.addNetwork(wc);
System.out.println("wifiId:"+wifiId);
if (wifiId != -1) {
isConnection = wifiManager.enableNetwork(wifiId, true);
}
return isConnection;
}
/**
* 扫描wifi热点
*
* @return wifiList
* @author 2011-08-16
*/
public List<ScanResult> scanWifi() {
// wifiManager.startScan();
return wifiManager.getScanResults();
}
// class WifiReceiver extends BroadcastReceiver{
//
// @Override
// public void onReceive(Context context, Intent intent)
// {
// // TODO Auto-generated method stub
// wifiList=wifiManager.getScanResults();
// }
//
// }
}
分享到:
相关推荐
非常好用的判断网络连接的demo,已经封装好了,可以直接调用,而且区分了三种不同的情况,网络未连接,用gprs网络连接,wifi网络连接三种
此demo描述的是Android判断当前网络类型。首先判断是否有无网络连接,其次判断是否是wifi还是手机网络,最后如果是手机网络的话判断当前网络类型是2G网络还是3G网络还是4G网络。Demo通过两种方式进行判断,一种是...
android判断网络状态、获取网络运营商、网络类型的工具类,并提供打开网络设置界面接口
安卓端实现对APP实时网络的检测,可判断此时手机能否访问网络,以及判断出此时是在使用移动流量还是WIFI,代码里有解释和介绍。博客介绍可看https://blog.csdn.net/weixin_38611617/article/details/115296055
注册广播实时监测当前手机的连接网络(wifi/2G/3G/4G)以及可以检测当前数据连接所属的网络运行商(移动/电信/联通)
判断WIFI是否开启,开启后自动扫描周围热点,选择热点后输入密码连接
这是android判断网络的工具类,直接返回boolean类型
安卓端版本更新的,判断网络连接的工具类,带有demo使用的方法
WIFI蓝牙功能,可以判断是否连接WIFI或蓝牙功能
本文主要介绍了Android 判断是否连接成功了指定wifi的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
判断wifi网络是否链接: public static boolean isWiFiActive(Context inContext) { WifiManager mWifiManager = (WifiManager) inContext .getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = ...
判断连上的网络是wifi还是有线网络
Android判断网络连接和网络类型,判断是否有网络存在,包括:3G、wifi等。
判断当前android设备网络连接状态,区分是wifi连接还是gprs连接网络
Android获取wifi热点,实现控制wifi链接
AndroidTV开发过程中对Wifi网络及Pppoe网络的开关状态进行判断,详细了解请移步http://blog.csdn.net/zxc514257857/article/details/68065312
Android对指定的WIFI进行一系列的操作,比如配置一个新的WIFI网络,密码输入错误判断,连接与为连接状态的处理。还有很多其他处理工作,在代码中都有相关的说明。
1.整合了android的网络判断过程封装 2.添加了应用库一句话获取当前网络的类型 ...//判断WIFI网络是否可用 NetWorkUtils.getConnectedType(mContext);//判断当前链接的类型(没有网络可用;=0数据流量;=1Wi-Fi);
Android实例源码-应用启动应用退出&网络判断类安卓源代码(12例) 3G和wifi的切换监听 android 在线更新示例代码 android程序的自动更新 和 基于GPS定位的轨迹存储 app更新,实现service下载 ViewPager+Fragment侧滑...
修改了别人分享的代码的,在5.0系统下指定连接的SSID WIFI 关闭后链接的信息没有保存下来localWifiManager.saveConfiguration()