一、 獲取手機基本資訊(廠商、型號等引數)
以小米手機為例,手機常用的基本資訊可以在Settings--> About Phone中看到,
例如下圖:

那么如何獲取這些設備資訊呢? Android中 通常通過 android.os.Build類方法可以獲取更多手機設備資訊,
二、 設備資訊獲取實作圖

獲取手機IMEI、寬、高、是否有SD卡,RAM、ROM、SD卡、是否聯網、網路型別

默認語言,設備名,型號、廠商、Fingerprint、Android 版本、SDK版本、Google 安全patch、發布時間、版本型別、用戶名

三、 獲取手機設備 寬、高、IMEI 資訊方法
獲取手機寬、高、IMEI資訊方法如下:
/**
* 獲取設備寬度(px)
*
*/
public static int getDeviceWidth(Context context) {
return context.getResources().getDisplayMetrics().widthPixels;
}
/**
* 獲取設備高度(px)
*/
public static int getDeviceHeight(Context context) {
return context.getResources().getDisplayMetrics().heightPixels;
}
/**
* 獲取設備的唯一標識, 需要 “android.permission.READ_Phone_STATE”權限
*/
public static String getIMEI(Context context) {
TelephonyManager tm = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
String deviceId = tm.getDeviceId();
if (deviceId == null) {
return "UnKnown";
} else {
return deviceId;
}
}
注意:獲取IMEI 需要獲取手機狀態權限
<!-- 讀取手機IMEI的設備權限 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
如果是Android 6.0 之后的代碼請使用動態申請權限的方法申請權限,否認會報安全例外的錯誤SecurityException,進而導致運行報錯,
如需了解更多 系統安全權限的內容,請看 之前寫的文章 Android 系統權限使用詳解
四、 獲取手機廠商名、產品名、手機品牌、手機型號、主板名、設備名的方法
獲取手機廠商名、產品名、手機品牌、手機型號、主板名、設備名的方法如下:
/**
* 獲取廠商名
* **/
public static String getDeviceManufacturer() {
return android.os.Build.MANUFACTURER;
}
/**
* 獲取產品名
* **/
public static String getDeviceProduct() {
return android.os.Build.PRODUCT;
}
/**
* 獲取手機品牌
*/
public static String getDeviceBrand() {
return android.os.Build.BRAND;
}
/**
* 獲取手機型號
*/
public static String getDeviceModel() {
return android.os.Build.MODEL;
}
/**
* 獲取手機主板名
*/
public static String getDeviceBoard() {
return android.os.Build.BOARD;
}
/**
* 設備名
* **/
public static String getDeviceDevice() {
return android.os.Build.DEVICE;
}
/**
*
*
* fingerprit 資訊
* **/
public static String getDeviceFubgerprint() {
return android.os.Build.FINGERPRINT;
}
五、 獲取手機硬體名、SDK版本、android版本 、語言支持、默認語言等方法
獲取手機硬體名、SDK版本、android版本 、語言支持、默認語言等方法如下:
/**
* 硬體名
*
* **/
public static String getDeviceHardware() {
return android.os.Build.HARDWARE;
}
/**
* 主機
*
* **/
public static String getDeviceHost() {
return android.os.Build.HOST;
}
/**
*
* 顯示ID
* **/
public static String getDeviceDisplay() {
return android.os.Build.DISPLAY;
}
/**
* ID
*
* **/
public static String getDeviceId() {
return android.os.Build.ID;
}
/**
* 獲取手機用戶名
*
* **/
public static String getDeviceUser() {
return android.os.Build.USER;
}
/**
* 獲取手機 硬體序列號
* **/
public static String getDeviceSerial() {
return android.os.Build.SERIAL;
}
/**
* 獲取手機Android 系統SDK
*
* @return
*/
public static int getDeviceSDK() {
return android.os.Build.VERSION.SDK_INT;
}
/**
* 獲取手機Android 版本
*
* @return
*/
public static String getDeviceAndroidVersion() {
return android.os.Build.VERSION.RELEASE;
}
/**
* 獲取當前手機系統語言,
*/
public static String getDeviceDefaultLanguage() {
return Locale.getDefault().getLanguage();
}
/**
* 獲取當前系統上的語言串列(Locale串列)
*/
public static String getDeviceSupportLanguage() {
Log.e("wangjie", "Local:" + Locale.GERMAN);
Log.e("wangjie", "Local:" + Locale.ENGLISH);
Log.e("wangjie", "Local:" + Locale.US);
Log.e("wangjie", "Local:" + Locale.CHINESE);
Log.e("wangjie", "Local:" + Locale.TAIWAN);
Log.e("wangjie", "Local:" + Locale.FRANCE);
Log.e("wangjie", "Local:" + Locale.FRENCH);
Log.e("wangjie", "Local:" + Locale.GERMANY);
Log.e("wangjie", "Local:" + Locale.ITALIAN);
Log.e("wangjie", "Local:" + Locale.JAPAN);
Log.e("wangjie", "Local:" + Locale.JAPANESE);
return Locale.getAvailableLocales().toString();
}
六、 獲取 SD 卡存盤資訊

1.判斷SD是否掛載方法
判斷SD是否掛載方法如下:
/**
* 判斷SD是否掛載
*/
public static boolean isSDCardMount() {
return Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED);
}
2. 獲取SD 存盤資訊的方法
獲取SD 存盤資訊的方法如下:
/**
* 獲取手機存盤 ROM 資訊
*
* type:用于區分內置存盤于外置存盤的方法
*
* 內置SD卡 :INTERNAL_STORAGE = 0;
*
* 外置SD卡:EXTERNAL_STORAGE = 1;
* **/
public static String getStorageInfo(Context context, int type) {
String path = getStoragePath(context, type);
/**
* 無外置SD 卡判斷
* **/
if (isSDCardMount() == false || TextUtils.isEmpty(path) || path == null) {
return "無外置SD卡";
}
File file = new File(path);
StatFs statFs = new StatFs(file.getPath());
String stotageInfo;
long blockCount = statFs.getBlockCountLong();
long bloackSize = statFs.getBlockSizeLong();
long totalSpace = bloackSize * blockCount;
long availableBlocks = statFs.getAvailableBlocksLong();
long availableSpace = availableBlocks * bloackSize;
stotageInfo = "可用/總共:"
+ Formatter.formatFileSize(context, availableSpace) + "/"
+ Formatter.formatFileSize(context, totalSpace);
return stotageInfo;
}
3. 獲取手機ROM (內置存盤,外置存盤)存盤路徑的方法
獲取手機ROM 存盤資訊的方法如下:
/**
* 使用反射方法 獲取手機存盤路徑
*
* **/
public static String getStoragePath(Context context, int type) {
StorageManager sm = (StorageManager) context
.getSystemService(Context.STORAGE_SERVICE);
try {
Method getPathsMethod = sm.getClass().getMethod("getVolumePaths",
null);
String[] path = (String[]) getPathsMethod.invoke(sm, null);
switch (type) {
case INTERNAL_STORAGE:
return path[type];
case EXTERNAL_STORAGE:
if (path.length > 1) {
return path[type];
} else {
return null;
}
default:
break;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 獲取 手機 RAM 資訊 方法 一
* */
public static String getTotalRAM(Context context) {
long size = 0;
ActivityManager activityManager = (ActivityManager) context
.getSystemService(context.ACTIVITY_SERVICE);
MemoryInfo outInfo = new MemoryInfo();
activityManager.getMemoryInfo(outInfo);
size = outInfo.totalMem;
return Formatter.formatFileSize(context, size);
}
/**
* 手機 RAM 資訊 方法 二
* */
public static String getTotalRAMOther(Context context) {
String path = "/proc/meminfo";
String firstLine = null;
int totalRam = 0;
try {
FileReader fileReader = new FileReader(path);
BufferedReader br = new BufferedReader(fileReader, 8192);
firstLine = br.readLine().split("\\s+")[1];
br.close();
} catch (Exception e) {
e.printStackTrace();
}
if (firstLine != null) {
totalRam = (int) Math.ceil((new Float(Float.valueOf(firstLine)
/ (1024 * 1024)).doubleValue()));
long totalBytes = 0;
}
return Formatter.formatFileSize(context, totalRam);
}
/**
* 獲取 手機 可用 RAM
* */
public static String getAvailableRAM(Context context) {
long size = 0;
ActivityManager activityManager = (ActivityManager) context
.getSystemService(context.ACTIVITY_SERVICE);
MemoryInfo outInfo = new MemoryInfo();
activityManager.getMemoryInfo(outInfo);
size = outInfo.availMem;
return Formatter.formatFileSize(context, size);
}
七、獲取手機 RAM、ROM存盤資訊
1.RAM:
運行時記憶體,此大小直接決定手機運行的流暢度,相當于電腦記憶體,
2.ROM :
手機存盤(分內置SD卡,外置SD卡),此大小直接決定著手機可以存盤資源的大小,相當于電腦硬碟,


3.獲取 RAM存盤資訊的方法如下:
/**
* 獲取 手機 RAM 資訊
* */
public static String getRAMInfo(Context context) {
long totalSize = 0;
long availableSize = 0;
ActivityManager activityManager = (ActivityManager) context
.getSystemService(context.ACTIVITY_SERVICE);
MemoryInfo memoryInfo = new MemoryInfo();
activityManager.getMemoryInfo(memoryInfo);
totalSize = memoryInfo.totalMem;
availableSize = memoryInfo.availMem;
return "可用/總共:" + Formatter.formatFileSize(context, availableSize)
+ "/" + Formatter.formatFileSize(context, totalSize);
}
4. 獲取手機ROM存盤資訊的方法如下:
/**
* 獲取手機存盤 ROM 資訊
*
* type:用于區分內置存盤于外置存盤的方法
*
* 內置SD卡 :INTERNAL_STORAGE = 0;
*
* 外置SD卡:EXTERNAL_STORAGE = 1;
* **/
public static String getStorageInfo(Context context, int type) {
String path = getStoragePath(context, type);
/**
* 無外置SD 卡判斷
* **/
if (isSDCardMount() == false || TextUtils.isEmpty(path) || path == null) {
return "無外置SD卡";
}
File file = new File(path);
StatFs statFs = new StatFs(file.getPath());
String stotageInfo;
long blockCount = statFs.getBlockCountLong();
long bloackSize = statFs.getBlockSizeLong();
long totalSpace = bloackSize * blockCount;
long availableBlocks = statFs.getAvailableBlocksLong();
long availableSpace = availableBlocks * bloackSize;
stotageInfo = "可用/總共:"
+ Formatter.formatFileSize(context, availableSpace) + "/"
+ Formatter.formatFileSize(context, totalSpace);
return stotageInfo;
}
八、DeviceInfoUtils 封裝類
為了方便查詢使用設備資訊,小編已經封裝成一個Utils類,代碼如下:
package com.programandroid.Utils; import java.util.Locale; import android.R.string; import android.content.Context; import android.telephony.TelephonyManager; import android.util.Log; /* * DeviceInfoUtils.java * * Created on: 2017-11-16 * Author: wangjie * * Welcome attention to weixin public number get more info * * WeiXin Public Number : ProgramAndroid * 微信公眾號 :程式員Android * */ public class DeviceInfoUtils { /** * 獲取設備寬度(px) * */ public static int getDeviceWidth(Context context) { return context.getResources().getDisplayMetrics().widthPixels; } /** * 獲取設備高度(px) */ public static int getDeviceHeight(Context context) { return context.getResources().getDisplayMetrics().heightPixels; } /** * 獲取設備的唯一標識, 需要 “android.permission.READ_Phone_STATE”權限 */ public static String getIMEI(Context context) { TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); String deviceId = tm.getDeviceId(); if (deviceId == null) { return "UnKnown"; } else { return deviceId; } } /** * 獲取廠商名 * **/ public static String getDeviceManufacturer() { return android.os.Build.MANUFACTURER; } /** * 獲取產品名 * **/ public static String getDeviceProduct() { return android.os.Build.PRODUCT; } /** * 獲取手機品牌 */ public static String getDeviceBrand() { return android.os.Build.BRAND; } /** * 獲取手機型號 */ public static String getDeviceModel() { return android.os.Build.MODEL; } /** * 獲取手機主板名 */ public static String getDeviceBoard() { return android.os.Build.BOARD; } /** * 設備名 * **/ public static String getDeviceDevice() { return android.os.Build.DEVICE; } /** * * * fingerprit 資訊 * **/ public static String getDeviceFubgerprint() { return android.os.Build.FINGERPRINT; } /** * 硬體名 * * **/ public static String getDeviceHardware() { return android.os.Build.HARDWARE; } /** * 主機 * * **/ public static String getDeviceHost() { return android.os.Build.HOST; } /** * * 顯示ID * **/ public static String getDeviceDisplay() { return android.os.Build.DISPLAY; } /** * ID * * **/ public static String getDeviceId() { return android.os.Build.ID; } /** * 獲取手機用戶名 * * **/ public static String getDeviceUser() { return android.os.Build.USER; } /** * 獲取手機 硬體序列號 * **/ public static String getDeviceSerial() { return android.os.Build.SERIAL; } /** * 獲取手機Android 系統SDK * * @return */ public static int getDeviceSDK() { return android.os.Build.VERSION.SDK_INT; } /** * 獲取手機Android 版本 * * @return */ public static String getDeviceAndroidVersion() { return android.os.Build.VERSION.RELEASE; } /** * 獲取當前手機系統語言, */ public static String getDeviceDefaultLanguage() { return Locale.getDefault().getLanguage(); } /** * 獲取當前系統上的語言串列(Locale串列) */ public static String getDeviceSupportLanguage() { Log.e("wangjie", "Local:" + Locale.GERMAN); Log.e("wangjie", "Local:" + Locale.ENGLISH); Log.e("wangjie", "Local:" + Locale.US); Log.e("wangjie", "Local:" + Locale.CHINESE); Log.e("wangjie", "Local:" + Locale.TAIWAN); Log.e("wangjie", "Local:" + Locale.FRANCE); Log.e("wangjie", "Local:" + Locale.FRENCH); Log.e("wangjie", "Local:" + Locale.GERMANY); Log.e("wangjie", "Local:" + Locale.ITALIAN); Log.e("wangjie", "Local:" + Locale.JAPAN); Log.e("wangjie", "Local:" + Locale.JAPANESE); return Locale.getAvailableLocales().toString(); } public static String getDeviceAllInfo(Context context) { return "\n\n1. IMEI:\n\t\t" + getIMEI(context) + "\n\n2. 設備寬度:\n\t\t" + getDeviceWidth(context) + "\n\n3. 設備高度:\n\t\t" + getDeviceHeight(context) + "\n\n4. 是否有內置SD卡:\n\t\t" + SDCardUtils.isSDCardMount() + "\n\n5. RAM 資訊:\n\t\t" + SDCardUtils.getRAMInfo(context) + "\n\n6. 內部存盤資訊\n\t\t" + SDCardUtils.getStorageInfo(context, 0) + "\n\n7. SD卡 資訊:\n\t\t" + SDCardUtils.getStorageInfo(context, 1) + "\n\n8. 是否聯網:\n\t\t" + Utils.isNetworkConnected(context) + "\n\n9. 網路型別:\n\t\t" + Utils.GetNetworkType(context) + "\n\n10. 系統默認語言:\n\t\t" + getDeviceDefaultLanguage() + "\n\n11. 硬體序列號(設備名):\n\t\t" + android.os.Build.SERIAL + "\n\n12. 手機型號:\n\t\t" + android.os.Build.MODEL + "\n\n13. 生產廠商:\n\t\t" + android.os.Build.MANUFACTURER + "\n\n14. 手機Fingerprint標識:\n\t\t" + android.os.Build.FINGERPRINT + "\n\n15. Android 版本:\n\t\t" + android.os.Build.VERSION.RELEASE + "\n\n16. Android SDK版本:\n\t\t" + android.os.Build.VERSION.SDK_INT + "\n\n17. 安全patch 時間:\n\t\t" + android.os.Build.VERSION.SECURITY_PATCH + "\n\n18. 發布時間:\n\t\t" + Utils.Utc2Local(android.os.Build.TIME) + "\n\n19. 版本型別:\n\t\t" + android.os.Build.TYPE + "\n\n20. 用戶名:\n\t\t" + android.os.Build.USER + "\n\n21. 產品名:\n\t\t" + android.os.Build.PRODUCT + "\n\n22. ID:\n\t\t" + android.os.Build.ID + "\n\n23. 顯示ID:\n\t\t" + android.os.Build.DISPLAY + "\n\n24. 硬體名:\n\t\t" + android.os.Build.HARDWARE + "\n\n25. 產品名:\n\t\t" + android.os.Build.DEVICE + "\n\n26. Bootloader:\n\t\t" + android.os.Build.BOOTLOADER + "\n\n27. 主板名:\n\t\t" + android.os.Build.BOARD + "\n\n28. CodeName:\n\t\t" + android.os.Build.VERSION.CODENAME + "\n\n29. 語言支持:\n\t\t" + getDeviceSupportLanguage(); } }
九、SDCardUtils 封裝類
為了方便查詢使用設備資訊,小編已經封裝成一個Utils類,代碼如下:
package com.programandroid.Utils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.lang.reflect.Method;
import android.app.ActivityManager;
import android.app.ActivityManager.MemoryInfo;
import android.content.Context;
import android.os.Build;
import android.os.Environment;
import android.os.StatFs;
import android.os.storage.StorageManager;
import android.text.TextUtils;
import android.text.format.Formatter;
/*
* SDCardUtils.java
*
* Created on: 2017-11-22
* Author: wangjie
*
* Welcome attention to weixin public number get more info
*
* WeiXin Public Number : ProgramAndroid
* 微信公眾號 :程式員Android
*
*/
public class SDCardUtils {
private static final int INTERNAL_STORAGE = 0;
private static final int EXTERNAL_STORAGE = 1;
/**
* 獲取 手機 RAM 資訊
* */
public static String getRAMInfo(Context context) {
long totalSize = 0;
long availableSize = 0;
ActivityManager activityManager = (ActivityManager) context
.getSystemService(context.ACTIVITY_SERVICE);
MemoryInfo memoryInfo = new MemoryInfo();
activityManager.getMemoryInfo(memoryInfo);
totalSize = memoryInfo.totalMem;
availableSize = memoryInfo.availMem;
return "可用/總共:" + Formatter.formatFileSize(context, availableSize)
+ "/" + Formatter.formatFileSize(context, totalSize);
}
/**
* 判斷SD是否掛載
*/
public static boolean isSDCardMount() {
return Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED);
}
/**
* 獲取手機存盤 ROM 資訊
*
* type:用于區分內置存盤于外置存盤的方法
*
* 內置SD卡 :INTERNAL_STORAGE = 0;
*
* 外置SD卡:EXTERNAL_STORAGE = 1;
* **/
public static String getStorageInfo(Context context, int type) {
String path = getStoragePath(context, type);
/**
* 無外置SD 卡判斷
* **/
if (isSDCardMount() == false || TextUtils.isEmpty(path) || path == null) {
return "無外置SD卡";
}
File file = new File(path);
StatFs statFs = new StatFs(file.getPath());
String stotageInfo;
long blockCount = statFs.getBlockCountLong();
long bloackSize = statFs.getBlockSizeLong();
long totalSpace = bloackSize * blockCount;
long availableBlocks = statFs.getAvailableBlocksLong();
long availableSpace = availableBlocks * bloackSize;
stotageInfo = "可用/總共:"
+ Formatter.formatFileSize(context, availableSpace) + "/"
+ Formatter.formatFileSize(context, totalSpace);
return stotageInfo;
}
/**
* 使用反射方法 獲取手機存盤路徑
*
* **/
public static String getStoragePath(Context context, int type) {
StorageManager sm = (StorageManager) context
.getSystemService(Context.STORAGE_SERVICE);
try {
Method getPathsMethod = sm.getClass().getMethod("getVolumePaths",
null);
String[] path = (String[]) getPathsMethod.invoke(sm, null);
switch (type) {
case INTERNAL_STORAGE:
return path[type];
case EXTERNAL_STORAGE:
if (path.length > 1) {
return path[type];
} else {
return null;
}
default:
break;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 獲取 手機 RAM 資訊 方法 一
* */
public static String getTotalRAM(Context context) {
long size = 0;
ActivityManager activityManager = (ActivityManager) context
.getSystemService(context.ACTIVITY_SERVICE);
MemoryInfo outInfo = new MemoryInfo();
activityManager.getMemoryInfo(outInfo);
size = outInfo.totalMem;
return Formatter.formatFileSize(context, size);
}
/**
* 手機 RAM 資訊 方法 二
* */
public static String getTotalRAMOther(Context context) {
String path = "/proc/meminfo";
String firstLine = null;
int totalRam = 0;
try {
FileReader fileReader = new FileReader(path);
BufferedReader br = new BufferedReader(fileReader, 8192);
firstLine = br.readLine().split("\\s+")[1];
br.close();
} catch (Exception e) {
e.printStackTrace();
}
if (firstLine != null) {
totalRam = (int) Math.ceil((new Float(Float.valueOf(firstLine)
/ (1024 * 1024)).doubleValue()));
long totalBytes = 0;
}
return Formatter.formatFileSize(context, totalRam);
}
/**
* 獲取 手機 可用 RAM
* */
public static String getAvailableRAM(Context context) {
long size = 0;
ActivityManager activityManager = (ActivityManager) context
.getSystemService(context.ACTIVITY_SERVICE);
MemoryInfo outInfo = new MemoryInfo();
activityManager.getMemoryInfo(outInfo);
size = outInfo.availMem;
return Formatter.formatFileSize(context, size);
}
/**
* 獲取手機內部存盤空間
*
* @param context
* @return 以M,G為單位的容量
*/
public static String getTotalInternalMemorySize(Context context) {
File file = Environment.getDataDirectory();
StatFs statFs = new StatFs(file.getPath());
long blockSizeLong = statFs.getBlockSizeLong();
long blockCountLong = statFs.getBlockCountLong();
long size = blockCountLong * blockSizeLong;
return Formatter.formatFileSize(context, size);
}
/**
* 獲取手機內部可用存盤空間
*
* @param context
* @return 以M,G為單位的容量
*/
public static String getAvailableInternalMemorySize(Context context) {
File file = Environment.getDataDirectory();
StatFs statFs = new StatFs(file.getPath());
long availableBlocksLong = statFs.getAvailableBlocksLong();
long blockSizeLong = statFs.getBlockSizeLong();
return Formatter.formatFileSize(context, availableBlocksLong
* blockSizeLong);
}
/**
* 獲取手機外部存盤空間
*
* @param context
* @return 以M,G為單位的容量
*/
public static String getTotalExternalMemorySize(Context context) {
File file = Environment.getExternalStorageDirectory();
StatFs statFs = new StatFs(file.getPath());
long blockSizeLong = statFs.getBlockSizeLong();
long blockCountLong = statFs.getBlockCountLong();
return Formatter
.formatFileSize(context, blockCountLong * blockSizeLong);
}
/**
* 獲取手機外部可用存盤空間
*
* @param context
* @return 以M,G為單位的容量
*/
public static String getAvailableExternalMemorySize(Context context) {
File file = Environment.getExternalStorageDirectory();
StatFs statFs = new StatFs(file.getPath());
long availableBlocksLong = statFs.getAvailableBlocksLong();
long blockSizeLong = statFs.getBlockSizeLong();
return Formatter.formatFileSize(context, availableBlocksLong
* blockSizeLong);
}
/**
*
* SD 卡資訊
* */
public static String getSDCardInfo() {
SDCardInfo sd = new SDCardInfo();
if (!isSDCardMount())
return "SD card 未掛載!";
sd.isExist = true;
StatFs sf = new StatFs(Environment.getExternalStorageDirectory()
.getPath());
sd.totalBlocks = sf.getBlockCountLong();
sd.blockByteSize = sf.getBlockSizeLong();
sd.availableBlocks = sf.getAvailableBlocksLong();
sd.availableBytes = sf.getAvailableBytes();
sd.freeBlocks = sf.getFreeBlocksLong();
sd.freeBytes = sf.getFreeBytes();
sd.totalBytes = sf.getTotalBytes();
return sd.toString();
}
public static class SDCardInfo {
boolean isExist;
long totalBlocks;
long freeBlocks;
long availableBlocks;
long blockByteSize;
long totalBytes;
long freeBytes;
long availableBytes;
@Override
public String toString() {
return "isExist=" + isExist + "\ntotalBlocks=" + totalBlocks
+ "\nfreeBlocks=" + freeBlocks + "\navailableBlocks="
+ availableBlocks + "\nblockByteSize=" + blockByteSize
+ "\ntotalBytes=" + totalBytes + "\nfreeBytes=" + freeBytes
+ "\navailableBytes=" + availableBytes;
}
}
// add start by wangjie for SDCard TotalStorage
public static String getSDCardTotalStorage(long totalByte) {
double byte2GB = totalByte / 1024.00 / 1024.00 / 1024.00;
double totalStorage;
if (byte2GB > 1) {
totalStorage = Math.ceil(byte2GB);
if (totalStorage > 1 && totalStorage < 3) {
return 2.0 + "GB";
} else if (totalStorage > 2 && totalStorage < 5) {
return 4.0 + "GB";
} else if (totalStorage >= 5 && totalStorage < 10) {
return 8.0 + "GB";
} else if (totalStorage >= 10 && totalStorage < 18) {
return 16.0 + "GB";
} else if (totalStorage >= 18 && totalStorage < 34) {
return 32.0 + "GB";
} else if (totalStorage >= 34 && totalStorage < 50) {
return 48.0 + "GB";
} else if (totalStorage >= 50 && totalStorage < 66) {
return 64.0 + "GB";
} else if (totalStorage >= 66 && totalStorage < 130) {
return 128.0 + "GB";
}
} else {
// below 1G return get values
totalStorage = totalByte / 1024.00 / 1024.00;
if (totalStorage >= 515 && totalStorage < 1024) {
return 1 + "GB";
} else if (totalStorage >= 260 && totalStorage < 515) {
return 512 + "MB";
} else if (totalStorage >= 130 && totalStorage < 260) {
return 256 + "MB";
} else if (totalStorage > 70 && totalStorage < 130) {
return 128 + "MB";
} else if (totalStorage > 50 && totalStorage < 70) {
return 64 + "MB";
}
}
return totalStorage + "GB";
}
// add end by wangjie for SDCard TotalStorage
}

希望本文對你有所幫助~~如果對軟體測驗、介面測驗、自動化測驗、面試經驗交流感興趣可以加入我們,642830685,免費領取最新軟體測驗大廠面試資料和Python自動化、介面、框架搭建學習資料!技術大牛解惑答疑,同行一起交流,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/231796.html
標籤:其他
下一篇:介面測驗要測驗什么?要怎么測?
