我正在尝试在Android设备的外部存储卡上读取和写入文件。 我使用了以下代码,您可以参考https://developer.android.com/guide/topics/data/data-storage.html#filesExternal了解更多详情。
public String getExternalPath(){
int ver = Build.VERSION.SDK_INT;
File[] externalRoots = null;
if(ver <= Build.VERSION_CODES.JELLY_BEAN_MR2){
externalRoots = ContextCompat.getExternalFilesDirs(getBaseContext(), null);
} else {
externalRoots = getExternalFilesDirs(null);
}
File externalRoot = null;
if(externalRoots.length > 1){
externalRoot = externalRoots[1];
} else {
externalRoot = externalRoots[0];
}
if(externalRoot != null){
return externalRoot.getAbsolutePath();
}
return null;
}
但是,它在某些设备上运行正常,而不是全部。例如,使用华硕设备,LG或三星设备,在外部存储卡(可移动)上读写文件效果非常好,但在联想,Aquaris等中国设备上却无法实现。
你能帮我解释一下为什么会出现这个问题吗?或者给我一些官方文件,谈论OEM定制Android OS的差异。
谢谢!