android sdcard信息获取

手机存储都有两种,一种是 手机自带的存储,称为internal storage,另外一种用户额外插入的存储,称为removable storage (也就是外置sdcard的部分).

removable storage 的路径一般是 storage/emulated/0/Android/data/com.example.storagetest/files/alarm

internal storage 也有一部分称为 external (也就是内置sdcard的部分) 的,这部分的路径为  /storage/emulated/0

获取内置sdcard路径方法

    通过 Context.get....dir或者 Environment.get...dir去获取

获取外置sdcard路径方法

    1.String extSdcardPath = System.getenv("SECONDARY_STORAGE");

    2.通过StorageManager  来获取。

StorageManager mStorageManager = (StorageManager) mContext.getSystemService(Context.STORAGE_SERVICE);
        Class<?> storageVolumeClazz = null;
        try {
            storageVolumeClazz = Class.forName("android.os.storage.StorageVolume");
            Method getVolumeList = mStorageManager.getClass().getMethod("getVolumeList");
            Method getPath = storageVolumeClazz.getMethod("getPath");
            Method isRemovable = storageVolumeClazz.getMethod("isRemovable");
            Object result = getVolumeList.invoke(mStorageManager);
            final int length = Array.getLength(result);
            for (int i = 0; i < length; i++) {
                Object storageVolumeElement = Array.get(result, i);
                String path = (String) getPath.invoke(storageVolumeElement);//如果有外置sdcard,那么 sdcard1 就是外置的了。
                boolean removable = (Boolean) isRemovable.invoke(storageVolumeElement);
                if (is_removale == removable) {
                    return path;
                }
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        return null;
时间: 2024-07-28 16:45:48

android sdcard信息获取的相关文章

Android电池信息获取

Android 可以通过BroadcastReceiver来获取电池信息改变的广播(ACTION_BATTERY_CHANGED),从而获取到相关的电池信息. 电池信息,及其对应的相关常数(参考网址:http://blog.sina.com.cn/s/blog_5d2e69770102vh59.html) 电池信息 类型 备注 status int 取得电池的状态,返回的状态类型由 android.os.BatteryManager 类定义的常量所决定,包括: 电池充电状态( BATTERY_S

Android屏幕信息获取

Android中有时需要获取屏幕的size信息以便对控件位置进行动态控制,最近做了一些研究,现在将获取屏幕大小信息的方法总结如下,可能存在一些地方理解的不全面. 1.getMetrics Java代码   DisplayMetrics dm = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(dm); //在没有Activity上下文时可使用如下方法,需要Context上下文 //d

android WIFI信息获取

在androi中WIFI信息的获取可以通过系统提供的WIFI Service获取 [java] WifiManager wifi_service = (WifiManager)getSystemService(WIFI_SERVICE); WifiInfo    wifiInfo     = wifi_service.getConnectionInfo(); 其中WifiInfo 中比较常用的信息有: [java] /* info.getBSSID():      获取BSSID地址. info

android设备信息获取

权限:<uses-permission android:name="android.permission.READ_PHONE_STATE" /> import android.app.Activity; import android.app.AlertDialog; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogI

Android设备网络、屏幕尺寸、SD卡、本地IP、存储空间等信息获取工具类

Android设备网络.屏幕尺寸.SD卡.本地IP.存储空间.服务.进程.应用包名等信息获取的整合工具类. 1 package com.qiyu.ddb.util; 2 3 import android.annotation.SuppressLint; 4 import android.annotation.TargetApi; 5 import android.app.Activity; 6 import android.app.ActivityManager; 7 import androi

android的一些常用手机信息获取

Android中与电话功能相关的类是 TelephonyManager ,此类中定义了很多常量,以下分类说明 获取以下信息需要在AndroidManifest.xml中指定权限 一. 数据连接状态 获取数据连接状态:int getDataState() 获取数据活动状态:int getDataActivity() 常用的有这几个: int DATA_ACTIVITY_IN 数据连接状态:活动,正在接受数据 int DATA_ACTIVITY_OUT 数据连接状态:活动,正在发送数据 int DA

Android中StatFs获取系统/sdcard存储(剩余空间)大小

package com.orgcent.util; import java.io.File; import android.os.Environment; import android.os.StatFs; public class MemoryStatus { static final int ERROR = -1; /** * 外部存储是否可用 * @return */ static public boolean externalMemoryAvailable() { return andr

Shell下获取Android设备信息

使用adb.exe shell进入shell界面,然后通过下列命令即可获取需要的信息 :) 1 // getprop命令可获取很多信息哟 2 // 1.获取厂商名称 3 getprop ro.product.brand 4 // 2.设备型号 5 getprop ro.product.model 6 // 3.安卓版本 7 getprop ro.build.version.release 8 // 4.网卡名称 9 wifi.interface 10 // 5.Google glass系统版本

Android进阶之获取APK签名信息及MD5指纹

1 Android进阶之获取APK签名信息及MD5指纹 package com.guesslive.caixiangji.util; public class SignUtils { private static final String ALGORITHM = "RSA"; private static final String SIGN_ALGORITHMS = "SHA1WithRSA"; private static final String DEFAULT