package com.mingrisoft.wifidemo;
import java.util.Timer;
import java.util.TimerTask;
import android.annotation.SuppressLint;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends android.app.Activity {
private WifiInfo wifiInfo = null; //获得的Wifi信息
private WifiManager wifiManager = null; //Wifi管理器
private Handler handler;
private ImageView wifi_image; //信号图片显示
private int level; //信号强度值
@SuppressLint("HandlerLeak")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//图片控件初始化
wifi_image = (ImageView) findViewById(R.id.wifi_image);
// 获得WifiManager
wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
// 使用定时器,每隔5秒获得一次信号强度值
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
wifiInfo = wifiManager.getConnectionInfo();
//获得信号强度值
//得到的值是一个0到-100的区间值,是一个int型数据,其中0到-50表示信号最好,
// -50到-70表示信号偏差,小于-70表示最差,有可能连接不上或者掉线。
level = wifiInfo.getRssi();
//根据获得的信号强度发送信息
if (level <= 0 && level >= -50) {
Message msg = new Message();
msg.what = 1;
handler.sendMessage(msg);
} else if (level < -50 && level >= -70) {
Message msg = new Message();
msg.what = 2;
handler.sendMessage(msg);
} else if (level < -70 && level >= -80) {
Message msg = new Message();
msg.what = 3;
handler.sendMessage(msg);
} else if (level < -80 && level >= -100) {
Message msg = new Message();
msg.what = 4;
handler.sendMessage(msg);
} else {
Message msg = new Message();
msg.what = 5;
handler.sendMessage(msg);
}
}
}, 1000, 5000);
// 使用Handler实现UI线程与Timer线程之间的信息传递,每5秒告诉UI线程获得wifiInto
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
// 如果收到正确的消息就获取WifiInfo,改变图片并显示信号强度
case 1:
wifi_image.setBackgroundResource(R.drawable.single4);
Toast.makeText(MainActivity.this,
"信号强度:" + level + " 信号最好", Toast.LENGTH_SHORT)
.show();
break;
case 2:
wifi_image.setBackgroundResource(R.drawable.single3);
Toast.makeText(MainActivity.this,
"信号强度:" + level + " 信号较好", Toast.LENGTH_SHORT)
.show();
break;
case 3:
wifi_image.setBackgroundResource(R.drawable.single2);
Toast.makeText(MainActivity.this,
"信号强度:" + level + " 信号一般", Toast.LENGTH_SHORT)
.show();
break;
case 4:
wifi_image.setBackgroundResource(R.drawable.single1);
Toast.makeText(MainActivity.this,
"信号强度:" + level + " 信号较差", Toast.LENGTH_SHORT)
.show();
break;
case 5:
wifi_image.setBackgroundResource(R.drawable.single0);
Toast.makeText(MainActivity.this,
"信号强度:" + level + " 无信号", Toast.LENGTH_SHORT)
.show();
break;
default:
//以防万一
wifi_image.setBackgroundResource(R.drawable.single0);
Toast.makeText(MainActivity.this, "无信号",
Toast.LENGTH_SHORT).show();
break;
}
}
};
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
检测wifi信号强度的android源代码
共93个文件
xml:38个
png:27个
bin:6个
需积分: 50 43 下载量 57 浏览量
2019-03-19
16:56:07
上传
评论 8
收藏 17.06MB ZIP 举报
温馨提示
检测wifi信号强度的android源代码,使用android studio软件编写。
资源推荐
资源详情
资源评论
收起资源包目录
检测wifi信号强度的android源代码.zip (93个子文件)
155
Project
WifiDemo
gradlew 5KB
settings.gradle 16B
.idea
libraries
junit_4_12.xml 477B
support_v4_24_2_1.xml 420B
javax_inject_1.xml 324B
support_fragment_24_2_1.xml 943B
support_vector_drawable_24_2_1.xml 638B
javax_annotation_api_1_2.xml 358B
exposed_instrumentation_api_publish_0_5.xml 698B
hamcrest_library_1_3.xml 342B
espresso_idling_resource_2_2_2.xml 680B
support_core_ui_24_2_1.xml 936B
hamcrest_core_1_3.xml 526B
support_core_utils_24_2_1.xml 775B
support_annotations_24_2_1.xml 491B
jsr305_2_0_1.xml 330B
support_compat_24_2_1.xml 929B
hamcrest_integration_1_3.xml 354B
appcompat_v7_24_2_1.xml 759B
espresso_core_2_2_2.xml 625B
rules_0_5.xml 719B
support_media_compat_24_2_1.xml 971B
javawriter_2_1_1.xml 330B
animated_vector_drawable_24_2_1.xml 643B
runner_0_5.xml 725B
runConfigurations.xml 564B
misc.xml 2KB
compiler.xml 686B
workspace.xml 162KB
gradle.xml 626B
modules.xml 353B
copyright
profiles_settings.xml 76B
build
intermediates
dex-cache
cache.xml 7KB
generated
mockable-android-24.jar 31.96MB
gradle
wrapper
gradle-wrapper.properties 233B
gradle-wrapper.jar 52KB
.gradle
2.14.1
tasks
_app_compileDebugJavaWithJavac
localJarClasspathSnapshot
localJarClasspathSnapshot.bin 20KB
localJarClasspathSnapshot.lock 17B
localClassSetAnalysis
localClassSetAnalysis.bin 29KB
localClassSetAnalysis.lock 17B
taskArtifacts
fileSnapshotsToTreeSnapshotsIndex.bin 26KB
cache.properties.lock 17B
fileHashes.bin 153KB
taskArtifacts.bin 105KB
fileSnapshots.bin 2.66MB
cache.properties 37B
WifiDemo.iml 862B
local.properties 426B
gradlew.bat 2KB
gradle.properties 747B
.gitignore 127B
app
src
androidTest
java
com
mingrisoft
wifidemo
ExampleInstrumentedTest.java 776B
test
java
com
mingrisoft
wifidemo
ExampleUnitTest.java 417B
main
AndroidManifest.xml 790B
res
mipmap-hdpi
ic_launcher.png 21KB
mipmap-xxxhdpi
ic_launcher.png 29KB
mipmap-xhdpi
ic_launcher.png 20KB
drawable-hdpi
single3.png 4KB
single1.png 2KB
single0.png 1KB
single4.png 5KB
single2.png 3KB
mipmap-mdpi
ic_launcher.png 17KB
drawable
drawable-mdpi
ic_launcher.png 2KB
stat_sys_wifi_signal_0.png 1KB
stat_sys_wifi_signal_2.png 1KB
stat_sys_wifi_signal_3.png 1KB
stat_sys_wifi_signal_4.png 1KB
stat_sys_wifi_signal_1.png 1KB
layout
activity_main.xml 446B
values-w820dp
dimens.xml 364B
values
colors.xml 214B
strings.xml 74B
styles.xml 394B
dimens.xml 216B
mipmap-xxhdpi
ic_launcher.png 24KB
java
com
mingrisoft
wifidemo
MainActivity.java 4KB
libs
app.iml 13KB
.gitignore 8B
build.gradle 900B
proguard-rules.pro 660B
build.gradle 521B
Src
drawable-hdpi
single3.png 4KB
single1.png 2KB
single0.png 1KB
single4.png 5KB
single2.png 3KB
drawable-mdpi
ic_launcher.png 2KB
stat_sys_wifi_signal_0.png 1KB
stat_sys_wifi_signal_2.png 1KB
stat_sys_wifi_signal_3.png 1KB
stat_sys_wifi_signal_4.png 1KB
stat_sys_wifi_signal_1.png 1KB
共 93 条
- 1
资源评论
时人莫之许也
- 粉丝: 89
- 资源: 52
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功