android-监听wifi状态和信号强度变化
来源:互联网 发布:ajax json参数传递 编辑:程序博客网 时间:2024/04/29 09:14
// /////////////////////////////////////////////////////////////////// 监听网络网络状态变化private MyReceiver mMyReceiver;private final String NETWORK_STATE_CHANGE = "android.net.conn.CONNECTIVITY_CHANGE";private void registReceiver() {if (mMyReceiver != null)return;mMyReceiver = new MyReceiver();IntentFilter filter = new IntentFilter();filter.addAction(NETWORK_STATE_CHANGE);filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);filter.addAction(WifiManager.RSSI_CHANGED_ACTION);registerReceiver(mMyReceiver, filter);}private void unregisterReceiver() {if (mMyReceiver == null)return;unregisterReceiver(mMyReceiver);mMyReceiver = null;}int[] wifiStateImgs = new int[] { R.drawable.selector_wifi_1,R.drawable.selector_wifi_2, R.drawable.selector_wifi_3,R.drawable.selector_wifi_4 };private class MyReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();Logcat.d(TAG, "action: " + action);if (action.equals(NETWORK_STATE_CHANGE)) {boolean isNetOK = NetHelper.isNetworkAvailable(MainActivity.this);Logcat.d(TAG, "网络状态发生变化,是否可用:" + isNetOK);if (isNetOK) {initWifiState();} else {btnWifi.setBackgroundResource(R.drawable.selector_wifi_0);}} else if (action.equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) {int wifistate = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,WifiManager.WIFI_STATE_DISABLED);if (wifistate == WifiManager.WIFI_STATE_DISABLED) {btnWifi.setBackgroundResource(R.drawable.selector_wifi_0);} else if (wifistate == WifiManager.WIFI_STATE_ENABLED) {updateWifiStrength();}} else if (action.equals(WifiManager.RSSI_CHANGED_ACTION)) {initWifiState();}}}public int getStrength(Context context) {WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);WifiInfo info = wifiManager.getConnectionInfo();if (info.getBSSID() != null) {int strength = WifiManager.calculateSignalLevel(info.getRssi(), 4);// 链接速度// int speed = info.getLinkSpeed();// // 链接速度单位// String units = WifiInfo.LINK_SPEED_UNITS;// // Wifi源名称// String ssid = info.getSSID();return strength;}return 0;}public void initWifiState() {ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo info = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);Logcat.d(TAG, "info.isConnected(): " + info.isConnected());if (info.isConnected()) {updateWifiStrength();} else {btnWifi.setBackgroundResource(R.drawable.selector_wifi_0);}}public void updateWifiStrength() {int strength = getStrength(this);if (strength >= 0 && strength <= 3)btnWifi.setBackgroundResource(wifiStateImgs[strength]);Logcat.d(TAG, "wifi strength: " + strength);}
0 0
- android-监听wifi状态和信号强度变化
- Android 监听Wifi状态和信号强度
- Android网络状态监听,wifi强度监听
- Android监听WIFI网络的变化并且获得当前信号强度
- 监听android wifi状态变化监听
- Android 广播监听wifi和流量网络状态变化
- android 获取wifi开光状态,连接状态,信号强度
- 关于获取android信号强度和电池状态变化图标修改的方法
- Android 中监听WIFI连接状态变化
- android获取wifi信号强度
- Android获取WIFI信号强度
- android获取wifi信号强度
- Android 获取wifi信号强度
- android WIFI 信号强度检测
- 监听电池电量,信号强度,手机状态
- 监听电池电量,信号强度,手机状态
- android 获取wifi 信号质量,信号强度
- Android 获取 Wifi 信号强度,检测是 Wifi 或者流量,获取手机电池电量及充电状态
- SpriteBuilder&Cocos2D使用CCEffect特效实现天黑天亮过度效果
- LeetCode 21 - Merge Two Sorted Lists
- 配置文件恢复
- PHP resource类型的实质是什么
- Implement Queue using Stacks 用俩栈实现队列
- android-监听wifi状态和信号强度变化
- python 序列化
- maven依赖servlet-api和jsp-api的问题
- 驱动层注册表操作
- 通过Python调用OpenStack 的RESTful API
- ViewPager+Fragment取消预加载(延迟加载)
- 【R语言】apply函数族
- 解决异常Circular dependencies cannot exist in RelativeLayout
- storm初识印象