package com.nancal.pdaclient.util;
import java.io.File;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.BatteryManager;
import android.os.Environment;
import android.os.StatFs;
import android.telephony.TelephonyManager;
public class PhoneStateUtil {
private static final String ERROR = "找不到存储设备";
//获取wifi信号强度
public String getWifiStatus(Context context) {
String result = null;
WifiManager wm = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
WifiInfo connectionInfo = wm.getConnectionInfo();
int rssi = connectionInfo.getRssi();
System.out.println("signal" + rssi);
if (rssi > -50) {
result = "wifi信号良好";
} else if (rssi <= -50 && rssi > 70) {
result = "wifi信号较差";
} else if (rssi <= -70) {
result = "wifi信号极差,有可能连接不上";
}
return result;
}
//获取电池电量
public String getBatteryStatus(Context context) {
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
return ((float) level / (float) scale) * 100.0f + "%";
}
//获取3G网网速
public String get3Gstatus(Context context) {
String result = null;
TelephonyManager telephonyManager = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
int dataState = telephonyManager.getDataState();
if (dataState != 2) {
result = "移动网络已经关闭,请打开网络";
return result;
}
int networkType = telephonyManager.getNetworkType();
switch (networkType) {
case 1:
result = "3g网速极差,小于128K";
break;
case 2:
result = "3g网速较差,在128K 到 236k 之间";
break;
case 3:
result = "3g网速良好,在236k 到 2M之间";
break;
default:
break;
}
return result;
}
//是否有外部存储设备
public static boolean externalMemoryAvailable() {
return android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED);
}
//获取内部存储设备可用容量
public static String getAvailableInternalMemorySize() {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return formatSize(availableBlocks * blockSize);
}
//获取内部存储设备总容量
public static String getTotalInternalMemorySize() {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return formatSize(totalBlocks * blockSize);
}
//获取外部存储可用的容量
public static String getAvailableExternalMemorySize() {
if (externalMemoryAvailable()) {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return formatSize(availableBlocks * blockSize);
} else {
return ERROR;
}
}
//获取外部存储总容量
public static String getTotalExternalMemorySize() {
if (externalMemoryAvailable()) {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return formatSize(totalBlocks * blockSize);
} else {
return ERROR;
}
}
//把byte单位转换成M
public static String formatSize(long size) {
String suffix = null;
if (size >= 1024) {
suffix = "KB";
size /= 1024;
if (size >= 1024) {
suffix = "MB";
size /= 1024;
}
}
StringBuilder resultBuffer = new StringBuilder(Long.toString(size));
int commaOffset = resultBuffer.length() - 3;
while (commaOffset > 0) {
resultBuffer.insert(commaOffset, ',');
commaOffset -= 3;
}
if (suffix != null)
resultBuffer.append(suffix);
return resultBuffer.toString();
}
}
分享到:
相关推荐
Qt获取并显示电池电量和WIFI信号强度,在win7下可用,其他平台未试,详见我的博客http://blog.csdn.net/caoshangpa/article/details/51062351
实现一个电池属性实时监听器。这些属性包括温度,电池电量....等等。而且,使用Service,Broadcast,以及Thread的方式来实现。MyBatteryService后台获取Battery属性值,然后,在Activity中进行相关数据的显示。
c#获取电池电量源代码 asp.net c# asp.net 电池电量
代码如下: /** * * @author chrp * *显示当前电池电量 */ public class MainActivity extends Activity { private TextView tv; /** * 广播接受者 */ class BatteryReceiver extends BroadcastReceiver{ @Override ...
【Android】获取电池电量 Demo
获取电池电量的多少,或者电池其它一些信息。
通过电池厂获取电池曲线参数,一般包含以下三个信息 1、电池总容量 2、放电电压 3、放电电压相对应的已消耗容量 假设电池容量10000mA,满电电压为4.4v,放电截止电压为2.7v 由于mcu的adc口检测,管脚电压不得超过3.3...
cocoa 框架c oc混合使用,实现获取mac os电池电量信息 os:mac os 10.12.5
获取当前电池的信息,判断电池使用状态,根据不同状态做不同操作
主要介绍了Android获取手机电池电量用法,以完整实例形式较为详细的分析了Android获取手机电量的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
android获取手机电量
HTML实现电池电量图标动态变化
1、wince设备电源管理,获取电池电量。
通过labview获取当前电脑系统的电量,可以用于便携式或者笔记本上位机软件显示系统电量值。
基于QT的电池电量,类3D效果的电池电量显示,用户可根据自己选择去控制电量大小
单片机通过ad检测。显示当前电池电量。可以直接使用。
android 手机的电池电量
本人一周的研究成果。手机电池电量和信号量的提取wm5.0
三元锂电池电量SOC对应电压表.xls