Kei*_*oth 23 android google-drive-api storage-access-framework
我正在使用Android 4.4的存储访问框架并打开文件选择器.
一切正常,除非从Google云端硬盘中选择文件,我只能弄清楚如何将其作为输入流打开,但我想获得一个java File对象.
返回的内容uri看起来像这样:content://com.google.android.apps.docs.storage/document/acc%3D4%3Bdoc%3D2279
其他类似的问题,但没有一个工作解决方案,允许我获取文件名,文件大小和内容:
我还研究了Paul Burke的FileChooser(https://github.com/iPaulPro/aFileChooser),这是该问题列表中最常见的问题.
如何从该内容获取文件?
我目前的解决方法是从输入流写出一个临时文件.
谢谢!
Kei*_*oth 34
好.我发现正确的方法是使用来自其他帖子的输入流以及来自contentresolver的一些数据.
这里有参考难以找到的android文档:https://developer.android.com/training/secure-file-sharing/retrieve-info.html
获取mimetype,filename和filesize的相关代码:
Uri returnUri = returnIntent.getData();
String mimeType = getContentResolver().getType(returnUri);
Cursor returnCursor =
getContentResolver().query(returnUri, null, null, null, null);
int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
int sizeIndex = returnCursor.getColumnIndex(OpenableColumns.SIZE);
returnCursor.moveToFirst();
TextView nameView = (TextView) findViewById(R.id.filename_text);
TextView sizeView = (TextView) findViewById(R.id.filesize_text);
nameView.setText(returnCursor.getString(nameIndex));
sizeView.setText(Long.toString(returnCursor.getLong(sizeIndex)));
Run Code Online (Sandbox Code Playgroud)
并获取文件内容:
getContentResolver().openInputStream(uri)
Run Code Online (Sandbox Code Playgroud)
希望这有助于其他人.
| 归档时间: |
|
| 查看次数: |
27598 次 |
| 最近记录: |