android获取周围AP信息(下)
疑问:
在上一篇中,还有一个问题未解决:WifiManager的startscan() 方法是立即返回的,也就是说这个方法会调用一个扫描wifi信号的线程,那么这个扫描什么时候结束呢?我们又该什么时候调用WifiManager的getScanResults()获取扫描结果呢?
解答:
当调用WifiManager的startscan() 方法,扫描结束后,系统会发出WifiManager.SCAN_RESULTS_AVAILABLE_ACTION广播,因此我们只需要定一个BroadcastRecever接受处理这个广播就行。我的手机测试,差不多扫描一次要花1s左右。
1、定义一个处理扫描结果的BroadcastRecever,当扫描结束后,会调用onReceive()方法。
注意:WifiManager.SCAN_RESULTS_AVAILABLE_ACTION这个监听,如果有可用的wifi,并且没有连任何wifi的话,会自动触发onReceive()方法,一旦连接成功则不在执行。

1 //wifi扫描结束后的结果处理类
2 private final class WifiReceiver extends BroadcastReceiver{
3 //当扫描结束后将会触发该方法
4 public void onReceive(Context context, Intent intent){
5 List<ScanResult> scanList = wm.getScanResults();
6 for(ScanResult scanResult : scanList){
7 //对扫描结果的操作
8
9 }
10 }
11 }

2、注册服务,注销服务。建议分别在OnResume()和OnPause()中注册和注销服务。

1 public void onResume(){
2 super.onResume();
3 registerReceiver(wifiReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); //注册服务
4 }
5 protected void onPause(){
6 super.onPause();
7 unregisterReceiver(wifiReceiver); //取消注册
8 }

android获取周围AP信息(下)的更多相关文章
- android获取周围AP信息(上)
1.增加权限: 由于此应用需要获取手机的网络信息,wifi信息,因此需要在AndroidManifest.xml文件中添加相关权限,否则会报permission deny错误: 1 <uses- ...
- android 获取系统硬件信息
一,首先设置权限访问: <uses-permission android:name="android.permission.READ_PHONE_STATE" /> ...
- Android 获取图片exif信息
使用android api读取图片的exif信息 布局代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/r ...
- android获取设备全部信息
private static final String FILE_MEMORY = "/proc/meminfo"; private static final String FIL ...
- [android] android 获取网络连接信息
效果图: 工具类 /** * 获取网络连接信息 * * 根据NetworkInfo可以知道有很多的连接方式和信息 * * ① 当没有任何可用网络的时候,networkinfo为null 判断netw ...
- Android 获取运营商信息(完整版)-解决高通,MTK等双卡问题
由于国内的运营商问题,双卡手机获取IMSI号问题要根据厂商API 来实现. 下面我们就来做一套完整的分析运营商获取IMSI号逻辑. 1,首先我们要判断手机的平台. 1.1,判断手机是否MTK平台 1 ...
- Android 获取手机联系人信息
//获取联系人 Uri rawContacts = Uri.parse("content://com.android.contacts/raw_contacts"); Conten ...
- android 获取application和activity下meta-data中的值
meta-data在AndroidManifest中是以键值对的形式存在的,可以将meta-data放在application根节点下,也可以放在某个activity节点下.因为存放的位置不同,因此获 ...
- Android获取系统cpu信息,内存,版本,电量等信息
本文转自:http://www.cnblogs.com/brainy/archive/2012/05/30/2526752.html 1.CPU频率,CPU信息:/proc/cpuinfo和/proc ...
随机推荐
- Java SHAA加密
package com.util; import java.security.MessageDigest; /** * 采用SHAA加密 */ public class SHAUtil { /*** ...
- asp.net core集成CAP(分布式事务总线)
一.前言 感谢杨晓东大佬为社区贡献的CAP开源项目,传送门在此:.NET Core 事件总线,分布式事务解决方案:CAP 以及 如何在你的项目中集成 CAP[手把手视频教程],之前也在工作中遇到分布式 ...
- 大数据开篇 MapReduce初步
最近在学习大数据相关的东西,开这篇专题来记录一下学习过程.今天主要记录一下MapReduce执行流程解析 引子(我们需要解决一个简单的单词计数(WordCount)问题) 1000个单词 嘿嘿,100 ...
- JSP之登录验证码
1.JSP页面中设置输入选项和验证码 <form action=login.do" method="post" > <div class="l ...
- [BZOJ5109][LOJ #6252][P4061][CodePlus 2017 11月赛]大吉大利,今晚吃鸡!(最短路+拓扑排序+传递闭包+map+bitset(hash+压位))
5109: [CodePlus 2017]大吉大利,晚上吃鸡! Time Limit: 30 Sec Memory Limit: 1024 MBSubmit: 107 Solved: 57[Sub ...
- BZOJ 2938 [Poi2000]病毒(AC自动机)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2938 [题目大意] 给出一些病毒串,问是否存在不包含任何病毒串的无限长的字符串 [题解 ...
- 2017-2018-1 JAVA实验站 冲刺 day04
2017-2018-1 JAVA实验站 冲刺 day04 各个成员今日完成的任务 小组成员 今日工作 完成进度 张韵琪 写博客.进行工作总结 100% 齐力锋 找背景音乐 100% 张浩林 游戏操作说 ...
- 注解@Aspect实现AOP功能
springboot中pom引入jar <!-- aop 切面 --> <dependency> <groupId>org.springframework.boot ...
- [bzoj1021][SHOI2008]Debt 循环的债务 (动态规划)
Description Alice. Bob和Cynthia总是为他们之间混乱的债务而烦恼,终于有一天,他们决定坐下来一起解决这个问题.不过,鉴别钞票的真伪是一件很麻烦的事情,于是他 们决定要在清还债 ...
- ThinkPHP -- 开发初体验及其几个配置文件的介绍
ThinkPHP是一款不错的轻量级的PHP+MVC框架,它吸取了Ruby On Rails的特性,不仅将Model.View.Controller分开,而且实现了ORM.模板标签等高级特性. 开 ...