Android连接wifi,调用系统API【转】
本文转载自:http://blog.csdn.net/aaa1050070637/article/details/54136472
直接上代码,简单粗暴,一看就懂
- import android.content.Context;
- import android.net.ConnectivityManager;
- import android.net.NetworkInfo;
- import android.net.wifi.ScanResult;
- import android.net.wifi.WifiConfiguration;
- import android.net.wifi.WifiInfo;
- import android.net.wifi.WifiManager;
- import android.util.Log;
- import java.util.List;
- /**
- * create 2016.12.29
- *
- * @author jack大漠
- *
- */
- public class WifiConnect {
- private static final String SSID = "Sunlight";
- private static final String PASSWORD = "12345678";
- public static final String WIFI_IS_NOT_OPEN = "wifi is closed.";
- private static final String TAG = "vivi";
- public WifiManager mWifiManager = null;
- private Context mContext = null;
- private int mNetworkID = -1;
- public WifiConnect(Context context) {
- this.mContext = context;
- mWifiManager = (WifiManager) context
- .getSystemService(Context.WIFI_SERVICE);
- }
- /**
- * 网络是否连接
- */
- public boolean isWifiConnected() {
- if (mContext != null) {
- ConnectivityManager mConnectivityManager = (ConnectivityManager) mContext
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfo mNetworkInfo = mConnectivityManager
- .getActiveNetworkInfo();
- if (mNetworkInfo != null
- && mNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
- return mNetworkInfo.isConnected();
- }
- }
- return false;
- }
- /**
- * Show wifi list
- */
- public String getWifiList() {
- if (WifiManager.WIFI_STATE_ENABLED != mWifiManager.getWifiState()) {
- return WIFI_IS_NOT_OPEN;
- }
- String text = "";
- List<ScanResult> results = mWifiManager.getScanResults();
- for (ScanResult result : results) {
- String SSID = result.SSID;
- if (SSID.startsWith("Sun")) {
- int db = result.level;
- text += SSID + ":" + db;
- return text;
- }
- }
- return "";
- }
- /**
- * 打开wifi开关
- */
- public void openWifi() {
- mWifiManager.setWifiEnabled(true);
- }
- public void closeWifi() {
- mWifiManager.setWifiEnabled(false);
- }
- /**
- * 是否打开开关
- */
- public boolean isWifiOpened() {
- return WifiManager.WIFI_STATE_ENABLED == mWifiManager.getWifiState();
- }
- public boolean isWifiEnable() {
- return mWifiManager.isWifiEnabled();
- }
- /**
- * 关闭开关
- */
- public void shutdownWiFi() {
- mWifiManager.setWifiEnabled(false);
- mNetworkID = -1;
- }
- /**
- * 连接指定Wifi
- */
- public boolean connectWifi(final String ssid, final String password,
- final SecurityMode mode) {
- WifiInfo info = getWifiInfo();
- Log.d(TAG, "connectWifi---->" + info.toString() + " ");
- if (isWifiConnected() && info != null
- && info.getSSID().equals("\"" + ssid + "\"")) {
- return true;
- }
- Log.d(TAG, "connectWifi---->" + isWifiConnected() + " ");
- List<WifiConfiguration> existingConfigs = mWifiManager
- .getConfiguredNetworks();
- if (existingConfigs == null) {
- return false;
- }
- for (WifiConfiguration existingConfig : existingConfigs) {
- if (existingConfig.SSID.equals("\"" + ssid + "\"")) {
- mNetworkID = existingConfig.networkId;
- break;
- }
- }
- if (mNetworkID <= -1) {
- WifiConfiguration config = new WifiConfiguration();
- config.SSID = "\"" + ssid + "\"";
- if (mode == SecurityMode.OPEN) {
- config.wepKeys[0] = "";
- config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
- config.wepTxKeyIndex = 0;
- } else if (password != null && !"".equals(password)) {
- if (mode == SecurityMode.WEP) {
- config.preSharedKey = "\"" + password + "\"";
- config.allowedAuthAlgorithms
- .set(WifiConfiguration.AuthAlgorithm.SHARED);
- config.allowedGroupCiphers
- .set(WifiConfiguration.GroupCipher.CCMP);
- config.allowedGroupCiphers
- .set(WifiConfiguration.GroupCipher.TKIP);
- config.allowedGroupCiphers
- .set(WifiConfiguration.GroupCipher.WEP40);
- config.allowedGroupCiphers
- .set(WifiConfiguration.GroupCipher.WEP104);
- config.allowedKeyManagement
- .set(WifiConfiguration.KeyMgmt.NONE);
- config.wepTxKeyIndex = 0;
- } else {
- config.preSharedKey = "\"" + password + "\"";
- config.allowedAuthAlgorithms
- .set(WifiConfiguration.AuthAlgorithm.OPEN);
- config.allowedGroupCiphers
- .set(WifiConfiguration.GroupCipher.TKIP);
- config.allowedKeyManagement
- .set(WifiConfiguration.KeyMgmt.WPA_PSK);
- config.allowedPairwiseCiphers
- .set(WifiConfiguration.PairwiseCipher.TKIP);
- config.allowedGroupCiphers
- .set(WifiConfiguration.GroupCipher.CCMP);
- config.allowedPairwiseCiphers
- .set(WifiConfiguration.PairwiseCipher.CCMP);
- config.status = WifiConfiguration.Status.ENABLED;
- }
- }
- mNetworkID = mWifiManager.addNetwork(config);
- }
- // 连接该网络
- return mWifiManager.enableNetwork(mNetworkID, true);
- }
- public WifiInfo getWifiInfo() {
- WifiInfo info = null;
- try {
- if (isWifiConnected()) {
- info = mWifiManager.getConnectionInfo();
- }
- } catch (Exception e) {
- Log.e(TAG, "getWifiInfo", e);
- }
- return info;
- }
- /**
- * 网络加密模式
- */
- public enum SecurityMode {
- OPEN, WEP, WPA2
- }
- /**
- * 初始化WiFi连接
- */
- public boolean initWifiConnect() {
- Log.d("vivi", "初始化Wifi连接---->" + " 开始连接");
- return connectWifi(SSID, PASSWORD, SecurityMode.WPA2);
- }
- }
Android连接wifi,调用系统API【转】的更多相关文章
- Android上传图片之调用系统拍照和从相冊选择图片
Android上传图片之调用系统拍照和从相冊选择图片 本篇文章已授权微信公众号 guolin_blog (郭霖)独家公布 前言: 万丈高楼平底起,万事起于微末.不知不觉距离上篇博文已近四个月,2015 ...
- Android下载图片/调用系统相机拍照、显示并保存到本地
package com.example.testhttpget; import java.io.BufferedReader; import java.io.FileNotFoundException ...
- 【Android学习】调用系统相机
Android调用系统相机分三步走: 首先是要设置调用相机的权限. 其次是给按钮加打开相机的事件. 最后是拍照后进行图片的保存. 第一步,添加权限: <!-- 调用系统相机 --> < ...
- Android 连接Wifi和创建Wifi热点 demo
android的热点功能不可见,用了反射的技术搞定之外. Eclipse设置语言为utf-8才能查看中文注释 上代码: MainActivity.java package com.widget.hot ...
- android 连接wifi案例
1.xml布局文件: <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmln ...
- 【Android学习】调用系统短信、电话
今天全心投入Android学习已经有一段时间了,从起初的啥也不懂,到现在半知半解状态,随笔记录些简单且常用的系统功能代码. 调用Android系统短信,其实调用短信非常简单,一个方法就可以搞定.我们可 ...
- 调用系统api修改系统时间
一:截图 二:代码 using System; using System.Collections.Generic; using System.ComponentModel; using System. ...
- android 7.0 调用系统相机崩溃的解决方案(非谷歌官方推荐)
解决方案: 1.(推荐)7.0之后你的app就算有权限,给出一个URI之后手机也认为你没有权限. 不用修改原有代码,在Application的oncreate方法中:(或者直接放在调用相机的activ ...
- C# 调用系统API 内核 简单样例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.R ...
随机推荐
- 算法导论 第十三章 红黑树(python)-1插入
红黑树是上一章二叉搜索树的改进,实现一种平衡 ,保证不会出现二叉树变链表的情况,基本动态集合操作的时间复杂度为O(lgn) 实际用途:c++stl中的set,map是用他实现的 红黑树的性质: 1.每 ...
- C#中如何使用正则表达式
[草稿版本,谨慎阅读] 参考文档:正则表达式30分钟入门教程 如需系统学习正则表达式内容,请移步上述教程. 正则表达式按照指定的规则来匹配字符或字符串.'.' ' \b' ' \d'等等被称为是正则表 ...
- Vue编写轮播组件引入better-scroll插件无法正常循环轮播
临近过年还是发个博客表示一下自己的存在感,这段时间公司突然说想搞小程序,想到这无比巨大的坑就只能掩面而泣,于是乎这段时间在学习小程序开发.关于标题所说的是有老铁问的,我也跟着网上的代码码了一遍然后发现 ...
- python +selenium 自带case +生成报告的模板
https://github.com/huahuijay/python-selenium2这个就是 python +selenium的 里面还自带case 然后也有生成报告的模板 我的: https: ...
- server中intersect的用法
intersect 就像数学中的交集一样, select nam from tb_table1 intersect select name from tb_table2 查询的是两个数据集的交集 ...
- hdu 1501 基本搜索深搜
#include<stdio.h> #include<string.h> char s1[300],s2[300],s[500]; int len1,len2,len3,fla ...
- bzoj4568 [Scoi2016]幸运数字 线性基+树链剖分
A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个 幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市的象征.一些旅行者希望游览 A ...
- jmesa应用
一直以来,都没发现什么好的分页组件,最初时用过displaytag,仔细研究了一下,发现它并没有别人说的那么强大,至少离自己的期望还很远,因此尝试寻找其它新的分页组件,但很久以来都没发现自己满意的.无 ...
- Wannafly模拟赛2 B river(拉格朗日乘数法)
题目 https://www.nowcoder.com/acm/contest/4/B题意 有n条南北流向的河并列排着,水流速度是v,现在你需要从西岸游到东岸,总共T个时间,你的游泳速度是u,问东岸的 ...
- MongoDB学习day08--Mongoose索引、Mongoose内置方法、扩展Mongoose Model的静态方法和实例方法
一.Mongoose索引 索引是对数据库表中一列或多列的值进行排序的一种结构, 可以让我们查询数据库变得更快. MongoDB 的索引几乎与传统的关系型数据库一模一样, 这其中也包括一些基本的查询优化 ...