/**
* Wifi信号强弱得到的值是一个0到-100的区间值,是一个int型数据,
* 其中0到-50表示信号最好,-50到-70表示信号偏差,小于-70表示最差,有可能连接不上或者掉线,
* 一般Wifi已断则值为-200。
*/
public class WifiActivity extends Activity {
private TextView textView, textView2;
private String text = "wifi test ";
ImageView wifi_image;
private WifiInfo wifiInfo = null; // 获得的Wifi信息
private WifiManager wifiManager = null; // Wifi管理器
private Handler handler;
private int level; // 信号强度值
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wifi);
textView = (TextView) findViewById(R.id.textview);
textView.setText(text);
textView2 = (TextView) findViewById(R.id.textview2);
wifi_image = (ImageView) findViewById(R.id.wifi_image);
testWifi();
}
private void testWifi() {
// 获得WifiManager
wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
// 使用定时器,每隔5秒获得一次信号强度值
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
wifiInfo = wifiManager.getConnectionInfo();
// 获得信号强度值
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.setImageResource(R.drawable.single4);
textView2.setText("信号强度:" + level + " 信号最好");
break;
case 2:
wifi_image.setImageResource(R.drawable.single3);
textView2.setText("信号强度:" + level + " 信号较好");
break;
case 3:
wifi_image.setImageResource(R.drawable.single2);
textView2.setText("信号强度:" + level + " 信号一般");
break;
case 4:
wifi_image.setImageResource(R.drawable.single1);
textView2.setText("信号强度:" + level + " 信号较差");
break;
case 5:
wifi_image.setImageResource(R.drawable.single0);
textView2.setText("信号强度:" + level + " 无信号");
break;
default:
// 以防万一
wifi_image.setImageResource(R.drawable.single0);
textView2.setText("无信号");
}
}
};
}
}
* Wifi信号强弱得到的值是一个0到-100的区间值,是一个int型数据,
* 其中0到-50表示信号最好,-50到-70表示信号偏差,小于-70表示最差,有可能连接不上或者掉线,
* 一般Wifi已断则值为-200。
*/
public class WifiActivity extends Activity {
private TextView textView, textView2;
private String text = "wifi test ";
ImageView wifi_image;
private WifiInfo wifiInfo = null; // 获得的Wifi信息
private WifiManager wifiManager = null; // Wifi管理器
private Handler handler;
private int level; // 信号强度值
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wifi);
textView = (TextView) findViewById(R.id.textview);
textView.setText(text);
textView2 = (TextView) findViewById(R.id.textview2);
wifi_image = (ImageView) findViewById(R.id.wifi_image);
testWifi();
}
private void testWifi() {
// 获得WifiManager
wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
// 使用定时器,每隔5秒获得一次信号强度值
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
wifiInfo = wifiManager.getConnectionInfo();
// 获得信号强度值
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.setImageResource(R.drawable.single4);
textView2.setText("信号强度:" + level + " 信号最好");
break;
case 2:
wifi_image.setImageResource(R.drawable.single3);
textView2.setText("信号强度:" + level + " 信号较好");
break;
case 3:
wifi_image.setImageResource(R.drawable.single2);
textView2.setText("信号强度:" + level + " 信号一般");
break;
case 4:
wifi_image.setImageResource(R.drawable.single1);
textView2.setText("信号强度:" + level + " 信号较差");
break;
case 5:
wifi_image.setImageResource(R.drawable.single0);
textView2.setText("信号强度:" + level + " 无信号");
break;
default:
// 以防万一
wifi_image.setImageResource(R.drawable.single0);
textView2.setText("无信号");
}
}
};
}
}