Android获取不同手机 自身存储和外置SD卡存储路径的解决方案

在开发Android内置文件管理器时,遇到不同手机存储路径不一致的问题。系统API无法准确区分手机存储和SD卡路径。解决方案是获取所有存储路径,通常arr[0]为手机存储,arr[1]为外置SD卡路径。已在多款手机上测试成功。
摘要由CSDN通过智能技术生成

最近在给一个应用里面做一个内置的文件管理器,期间遇到一个问题,就是选择不同手机的sd卡存储和手机本身存储。可以在两者之间来回切换,经过一系列测试发现,现在的很多手机厂家定制的手机内存和sd卡内存的路径都不同,用android系统自带的api无法准确获取区分sd卡和手机自身的准确路径,比如再一台手机上获取的手机的路径是/storage/emulated/0。很可能在另外一个手机上用同样的方法获取到的就不是这个路径。
下面给出解决方案,大致思路是:首先获取到手机(设备)中所有的存储路径,包括 手机自身的存储路径,sd卡存储路径,其他存储路径。返回的是一个存放路径的String数组。然后我们对数组进行处理,一般第一位元素arr[0]就是手机自身的存储路径,arr[1]就是外置sd卡的存储路径。
获取到路径了,我们接下来就可以进行其他操作了。
下面是代码

/**
     * 得到所有的存储路径(内部存储+外部存储)
     * 
     * @param context
     * @return
     */
    public static String[] getAllSdPaths(Context context) {
        Method mMethodGetPaths = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值