下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】有关WiFiSSID的获取
许久没有做一些总结了,最近项目有些忙。
在获取Android终端连接WiFi的SSID时(也就是你当前手机连接的无线网名称),发现了一个问题,不同的Android版本下获取到的SSID是有一些差别的,当然名字不会变。
举个例子,比如我配置了WiFi的名称是haha,有些手机获取到的就是haha,而有些获取到的却是"haha"——加了双引号。有这么一个需求,控制用户连接指定的WiFi。假定允许连接的WiFi列表里面有haha,hehe,houhou,huhu四个,如果获取到用户当前连接的WiFi名称是haha,那是允许用户连接上去的,如果获取到的是"haha",呃……也应该允许用户连接的,但是haha和"haha"两者,代码里做比较是不同的,事实上获取到"haha"名称的用户,连不上WiFi。(唉,按规定连接了你允许连接的WiFi,还是上不去,用户我也只能呵呵了)。
有人说可以查找一下用户连接的WiFi名称,如果发现里面有双引号,那就去掉。这样并不妥,如果WiFi本来的名称便带有双引号呢?事实上应该从手机的Android版本来判断,先看一下获取WiFiSSID的方法:WifiManager
wifiManager
=
(WifiManager)
getSystemService(Context.WIFI_SERVICE);
WifiInfo
wifiInfo
=
wifiManager.getConnectionInfo();
final
String
ssid
=
wifiInfo.getSSID();
getSSID()获取到的SSID名称和手机的Android版本有关,如果是Android4.2(APILevel=17)及其以上的版本,获取到的SSID名称是有双引号的,即"haha",如果是Android4.2以下的版本,获取到的SSID名称没有双引号,即haha。我写了一个方法,根据终端的Android版本来去掉双引号,以便使不同Android版本的用户获取到的SSID名称,可以匹配到WiFi列表里面允许连接的SSID。
布局文件的代码是比较简单的,就不贴了,两个TextView,分别显示直接获取到的SSID名称和去掉双引号之后的SSID名称,一个Button,点击后获取到当前终端连接的SSID。
Java代码如下:package
com.example.ssidtest;
import
android.app.Activity;
import
android.content.Context;
import
.wifi.WifiInfo;
import
.wifi.WifiManager;
import
android.os.Build;
import
android.os.Bundle;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.TextView;
public
class
ShowSSIDActivity
extends
Activity
{
private
int
deviceVersion;
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_ssid);
WifiManager
wifiManager
=
(WifiManager)
getSystemService(Context.WIFI_SERVICE);
WifiInfo
wifiInfo
=
wifiManager.getConnectionInfo();
final
String
ssid
=
wifiInfo.getSSID();
findViewById(R.id.btn).setOnClickListener(new
OnClickListener()
{
@Override
public
void
onClick(View
v)
{
((TextView)
findViewById(R.id.txt1)).setText(ssid);
((TextView)
findViewById(R.id.txt2))
.setText(whetherToRemoveTheDoubleQuotationMarks(ssid));
}
});
}
//根据Android的版本判断获取到的SSID是否有双引号
public
String
whetherToRemoveTheDoubleQuotationMarks(String
ssid)
{
//获取Android版本号
deviceVersion
=
Build.VERSION.SDK_INT;
if
(deviceVersion
>=
17)
{
if
(ssid.startsWith("\"")
&&
ssid.endsWith("\""))
{
ssid
=
ssid.substring(1,
ssid.length()
-
1);
}
}
return
ssid;
}
}
其中,whetherToRemoveTheDoubleQuotationMarks(Stringssid)便是根据终端版本号判断是否需要去掉双引号。
最后别忘了获取SSID是要在manifest文件里面添加如下权限的:<uses-permission
android:name="android.permission.ACCESS_WIFI_STATE"
/>
效果图:
我的一个终端的系统版本和获取到的SSID名称:
这个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省龙岩市达标名校2024届中考语文考试模拟冲刺卷含解析
- (中考试题)2024年浙江省绍兴市中考数学真题试卷解析版
- 案例2-无形资产减值测试评估案例
- 陕西省西安地区八校2024年高三第六次模拟考试数学试卷含解析
- 福建省泉州市永春县重点达标名校2022年初中化学毕业考试模拟冲刺卷含解析
- 2016高考-图文转换之徽标类
- 2024年合成材料助剂项目融资计划书
- 金学导航2023-2024学年高三3月份第一次模拟考试数学试卷含解析
- 2024年放电线圈项目营销方案
- 2024年电动汽车项目经营分析报告
- 教学质量分析幻灯片
- 关于感冒药的调研报告
- 儿童青少年心理发展与教育
- GJB24891995航空机载设备履历本及产品合格证编制要求
- 小班幼儿挑食行为研究报告
- 学生手册完整版本
- 超级实用的脚手架含量计算表脚手架计算表
- 相声剧本《孝亲是一种美德》
- 湖北省部分市州2024年元月高三期末联考 语文试卷(含答案)
- 铁路信号自动闭塞工程设计-区间电缆径路图设计
- 华为公司管理员工薪资福利体系
评论
0/150
提交评论