Android 获取 Wifi 信号强度,检测是 Wifi 或者流量,获取手机电池电量及充电状态
2017-06-16 11:35
911 查看
private static BroadcastReceiver batteryLevelRcvr; private static IntentFilter batteryLevelFilter; public static int batteryLevel = 0; public static int isChargingNum = 0; public static int WifiStrength = 0; public static int isWifiTraffic = 0;1
2
3
4
5
6
在 onCreater 中使用:
monitorBatteryState();1
编写代码:
/** * 检查用户是用的 Wifi 还是 流量 * */ public static void isWifiOrTraffic() { ConnectivityManager cm; cm = (ConnectivityManager) instance .getSystemService(Context.CONNECTIVITY_SERVICE); boolean isWifitrue = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI) .getState() == NetworkInfo.State.CONNECTED ? true : false; boolean isGprstrue = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE) .getState() == NetworkInfo.State.CONNECTED ? true : false; if (isWifitrue == true) { setWifiOrTraffic(4); } if (isGprstrue == true) { setWifiOrTraffic(5); } } public static void setWifiOrTraffic(int wifi) { isWifiTraffic = wifi; } public static int getWifiOrTraffic() { System.out .println("=====4-wifi 5-traffic =====JAVA getWifiOrTraffic() : " + isWifiTraffic); return isWifiTraffic; } /** * Wifi的连接速度及信号强度 * */ public int obtainWifiInfo() { int strength = 0; WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); // 取得WifiManager对象 WifiInfo info = wifiManager.getConnectionInfo(); // 取得WifiInfo对象 if (info.getBSSID() != null) { strength = WifiManager.calculateSignalLevel(info.getRssi(), 5); // 链接信号强度,5为获取的信号强度值在5以内 // int speed = info.getLinkSpeed(); // 链接速度 // String units = WifiInfo.LINK_SPEED_UNITS; // 链接速度单位 // String ssid = info.getSSID(); // Wifi源名称 } return strength; // return info.toString(); } public BroadcastReceiver rssiReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Log.d("Rssi", "=====RSSI changed"); setWifiStrength(obtainWifiInfo()); } }; public void setWifiStrength(int strength) { WifiStrength = strength; } public static int getWifiStrength() { System.out.println("=====JAVA getWifiStrength() : " + WifiStrength); return WifiStrength; } @Override public void onPause() { super.onPause(); unregisterReceiver(rssiReceiver); Log.d("Rssi", "=====Unregistered"); } /** * 1.获取手机电池电量 2.检查手机是否充电 * */ public static void monitorBatteryState() { isWifiOrTraffic(); batteryLevelRcvr = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { int rawlevel = intent.getIntExtra("level", -1); int scale = intent.getIntExtra("scale", -1); int status = intent.getIntExtra("status", -1); int level = -1; if (rawlevel >= 0 && scale > 0) { level = (rawlevel * 100) / scale; } setBatteryLevel(level); switch (status) { case BatteryManager.BATTERY_STATUS_CHARGING: setIsCharging(1); break; case BatteryManager.BATTERY_STATUS_FULL: setIsCharging(2); break; case BatteryManager.BATTERY_STATUS_NOT_CHARGING: setIsCharging(3); break; default: break; } } }; batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); instance.registerReceiver(batteryLevelRcvr, batteryLevelFilter); } public static void setBatteryLevel(int level) { batteryLevel = level; } public static int getBatteryLever() { System.out.println("=====getBatteryLever() : " + batteryLevel); return batteryLevel; } public static void setIsCharging(int num) { isChargingNum = num; } public static int getIsCharging() { System.out .println("=====1-ing 2-full 3-no =====JAVA getIsCharging() : " + isChargingNum); return isChargingNum; } protected void onResume() { super.onResume(); if (isWxLogin) { Log.d(TAG, "====Login Success"); loadWXUserInfo(); } registerReceiver(rssiReceiver, new IntentFilter( WifiManager.RSSI_CHANGED_ACTION)); Log.d("Rssi", "=====Registered"); } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(batteryLevelRcvr); }
相关文章推荐
- Android 获取 Wifi 信号强度,检测是 Wifi 或者流量,获取手机电池电量及充电状态
- 监听电池电量,信号强度,手机状态
- android 获取充电状态 电池电量
- android 获取wifi开光状态,连接状态,信号强度
- 获取当前手机的电池充电状态以及当前的电量
- 监听电池电量,信号强度,手机状态
- 关于获取android信号强度和电池状态变化图标修改的方法
- Android端如何获取手机当前的网络状态,比如wifi还是3G, 还是2G, 电信还是联通,还是移动
- Android手机信号强度检测详细介绍
- Android开发:优化电池续航-监听电量和充电状态
- 【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)
- android中 获取WiFi信息并计算wifi的信号强度
- Android获取手机电池电量用法实例
- 利用CTelephony获取电量,充电和手机信号的信息 转 - [symbian]
- android 获取wifi信号质量强度及监控
- Android 监听Wifi状态和信号强度
- android-获取手机信号强度
- WinCE获取Wifi的设备名、连接状态和信号强度
- Android端如何获取手机当前的网络状态,比如wifi还是3G, 还是2G, 电信还是联通,还是移动
- Android 实时获取手机充电状态