测试好信云,传输文件模块,选择本地文件,在选择“下载内容”时会崩溃,一看:
java.lang.NumberFormatException: For input string: "raw:/storage/emulated/0/Download/新建文本文档.txt"
这是个啥,定位到代码,是这样婶儿的:
final String id = DocumentsContract.getDocumentId(uri);
final Uri contentUri = ContentUris.withAppendedId(Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));
path = getDataColumn(context, contentUri, null, null);
id返回的明明是个字符串:raw:/storage/emulated/0/Download/新建文本文档.txt
搜搜是Android Oreo(8.0)以上版本 返回的结果会有不同,改成这样婶儿的就好了:
final String id = DocumentsContract.getDocumentId(uri);
if (!TextUtils.isEmpty(id)) {
if (id.startsWith("raw:")) {
return id.replaceFirst("raw:", "");
}
try {
final Uri contentUri = ContentUris.withAppendedId(Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));
return getDataColumn(context, contentUri, null, null);
} catch (NumberFormatException e) {
return null;
}
}
return path;