下面將講解以上信息的獲取方法。
以小米手機為例,手機常用的基本信息可以在Settings-->About Phone中看到,
例如下圖:
小米手機設(shè)備信息圖
那么如何獲取這些設(shè)備信息呢?Android中 通常通過android.os.Build類方法可以獲取更多手機設(shè)備信息。
二、 設(shè)備信息獲取實現(xiàn)圖
獲取手機IMEI、寬、高、是否有SD卡,RAM、ROM、SD卡、是否聯(lián)網(wǎng)、網(wǎng)絡(luò)類型
默認語言,設(shè)備名,型號、廠商、Fingerprint、Android 版本、SDK版本、Google 安全patch、發(fā)布時間、版本類型、用戶名
產(chǎn)品名、ID、產(chǎn)品名、主板名
三、 獲取手機設(shè)備 寬、高、IMEI 信息方法
獲取手機寬、高、IMEI信息方法如下:
/** * 獲取設(shè)備寬度(px) * */ public static int getDeviceWidth(Context context) { return context.getResources().getDisplayMetrics().widthPixels; } /** * 獲取設(shè)備高度(px) */ public static int getDeviceHeight(Context context) { return context.getResources().getDisplayMetrics().heightPixels; } /** * 獲取設(shè)備的唯一標(biāo)識, 需要 “android.permission.READ_Phone_STATE”權(quán)限 */ 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需要獲取手機狀態(tài)權(quán)限
如果是Android 6.0之后的代碼請使用動態(tài)申請權(quán)限的方法申請權(quán)限,否認會報安全異常的錯誤SecurityException,進而導(dǎo)致運行報錯。
如需了解更多 系統(tǒng)安全權(quán)限的內(nèi)容,請看 之前寫的文章Android 系統(tǒng)權(quán)限使用詳解
四、 獲取手機廠商名、產(chǎn)品名、手機品牌、手機型號、主板名、設(shè)備名的方法
獲取手機廠商名、產(chǎn)品名、手機品牌、手機型號、主板名、設(shè)備名的方法如下:
/** * 獲取廠商名 * **/ public static String getDeviceManufacturer() { return android.os.Build.MANUFACTURER; } /** * 獲取產(chǎn)品名 * **/ 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; } /** * 設(shè)備名 * **/ 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 系統(tǒng)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; } /** * 獲取當(dāng)前手機系統(tǒng)語言。 */ public static String getDeviceDefaultLanguage() { return Locale.getDefault().getLanguage(); } /** * 獲取當(dāng)前系統(tǒng)上的語言列表(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 卡存儲信息
SD卡信息
1.判斷SD是否掛載方法
判斷SD是否掛載方法如下:
/** * 判斷SD是否掛載 */ public static boolean isSDCardMount() { return Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED); }
2. 獲取SD 存儲信息的方法
獲取SD存儲信息的方法如下:
/** * 獲取手機存儲 ROM 信息 * * type: 用于區(qū)分內(nèi)置存儲于外置存儲的方法 * * 內(nèi)置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 (內(nèi)置存儲,外置存儲)存儲路徑的方法
獲取手機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:
運行時內(nèi)存,此大小直接決定手機運行的流暢度,相當(dāng)于電腦內(nèi)存。
2.ROM :
手機存儲(分內(nèi)置SD卡,外置SD卡),此大小直接決定著手機可以存儲資源的大小,相當(dāng)于電腦硬盤。
以紅米手機為例:
RAM= 1904716KB= 1.82G
紅米4 手機 RAM、ROM存儲信息
紅米4 memory 信息 meminfo
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: 用于區(qū)分內(nèi)置存儲于外置存儲的方法 * * 內(nèi)置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 封裝類
為了方便查詢使用設(shè)備信息,小編已經(jīng)封裝成一個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 { /** * 獲取設(shè)備寬度(px) * */ public static int getDeviceWidth(Context context) { return context.getResources().getDisplayMetrics().widthPixels; } /** * 獲取設(shè)備高度(px) */ public static int getDeviceHeight(Context context) { return context.getResources().getDisplayMetrics().heightPixels; } /** * 獲取設(shè)備的唯一標(biāo)識, 需要 “android.permission.READ_Phone_STATE”權(quán)限 */ 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; } /** * 獲取產(chǎn)品名 * **/ 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; } /** * 設(shè)備名 * **/ 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 系統(tǒng)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; } /** * 獲取當(dāng)前手機系統(tǒng)語言。 */ public static String getDeviceDefaultLanguage() { return Locale.getDefault().getLanguage(); } /** * 獲取當(dāng)前系統(tǒng)上的語言列表(Locale列表) */ public static String getDeviceSupportLanguage() { Log.e("wange", "Local:" + Locale.GERMAN); Log.e("wange", "Local:" + Locale.ENGLISH); Log.e("wangj", "Local:" + Locale.US); Log.e("wangj", "Local:" + Locale.CHINESE); Log.e("wange", "Local:" + Locale.TAIWAN); Log.e("wange", "Local:" + Locale.FRANCE); Log.e("wange", "Local:" + Locale.FRENCH); Log.e("wange", "Local:" + Locale.GERMANY); Log.e("wange", "Local:" + Locale.ITALIAN); Log.e("wangj", "Local:" + Locale.JAPAN); Log.e("wange", "Local:" + Locale.JAPANESE); return Locale.getAvailableLocales().toString(); } public static String getDeviceAllInfo(Context context) { return " 1. IMEI: " + getIMEI(context) + " 2. 設(shè)備寬度: " + getDeviceWidth(context) + " 3. 設(shè)備高度: " + getDeviceHeight(context) + " 4. 是否有內(nèi)置SD卡: " + SDCardUtils.isSDCardMount() + " 5. RAM 信息: " + SDCardUtils.getRAMInfo(context) + " 6. 內(nèi)部存儲信息 " + SDCardUtils.getStorageInfo(context, 0) + " 7. SD卡 信息: " + SDCardUtils.getStorageInfo(context, 1) + " 8. 是否聯(lián)網(wǎng): " + Utils.isNetworkConnected(context) + " 9. 網(wǎng)絡(luò)類型: " + Utils.GetNetworkType(context) + " 10. 系統(tǒng)默認語言: " + getDeviceDefaultLanguage() + " 11. 硬件序列號(設(shè)備名): " + android.os.Build.SERIAL + " 12. 手機型號: " + android.os.Build.MODEL + " 13. 生產(chǎn)廠商: " + android.os.Build.MANUFACTURER + " 14. 手機Fingerprint標(biāo)識: " + android.os.Build.FINGERPRINT + " 15. Android 版本: " + android.os.Build.VERSION.RELEASE + " 16. Android SDK版本: " + android.os.Build.VERSION.SDK_INT + " 17. 安全patch 時間: " + android.os.Build.VERSION.SECURITY_PATCH + " 18. 發(fā)布時間: " + Utils.Utc2Local(android.os.Build.TIME) + " 19. 版本類型: " + android.os.Build.TYPE + " 20. 用戶名: " + android.os.Build.USER + " 21. 產(chǎn)品名: " + android.os.Build.PRODUCT + " 22. ID: " + android.os.Build.ID + " 23. 顯示ID: " + android.os.Build.DISPLAY + " 24. 硬件名: " + android.os.Build.HARDWARE + " 25. 產(chǎn)品名: " + android.os.Build.DEVICE + " 26. Bootloader: " + android.os.Build.BOOTLOADER + " 27. 主板名: " + android.os.Build.BOARD + " 28. CodeName: " + android.os.Build.VERSION.CODENAME + " 29. 語言支持: " + getDeviceSupportLanguage(); } }
九、SDCardUtils 封裝類
為了方便查詢使用設(shè)備信息,小編已經(jīng)封裝成一個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: 用于區(qū)分內(nèi)置存儲于外置存儲的方法 * * 內(nèi)置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); } /** * 獲取手機內(nèi)部存儲空間 * * @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); } /** * 獲取手機內(nèi)部可用存儲空間 * * @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 + " totalBlocks=" + totalBlocks + " freeBlocks=" + freeBlocks + " availableBlocks=" + availableBlocks + " blockByteSize=" + blockByteSize + " totalBytes=" + totalBytes + " freeBytes=" + freeBytes + " availableBytes=" + 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 } 編輯:黃飛
-
Android
+關(guān)注
關(guān)注
12文章
3936瀏覽量
127403 -
SD卡
+關(guān)注
關(guān)注
2文章
565瀏覽量
63901 -
SDC
+關(guān)注
關(guān)注
0文章
49瀏覽量
15540 -
小米手機
+關(guān)注
關(guān)注
10文章
6396瀏覽量
75288
原文標(biāo)題:九、SDCardUtils 封裝類
文章出處:【微信號:哆啦安全,微信公眾號:哆啦安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論