- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取用户选择的文件的路径,为结果调用 intent ACTION_GET_CONTENT。
问题是当从文件管理器中选择一个音频文件时, Intent 不返回文件的扩展名(我检查过的文件名中有)。对于视频或图像,它工作正常。
代码如下:
Intent 调用:
Intent intent = getIntent();
if(intent.getAction() == null) {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
else
intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(Intent.createChooser(intent, "Select a File to Upload"),CloudConstants.CLOUD_REQUEST_FILE_CHOOSER);
关于结果代码:
if (data != null) {
//Get URI Data from Intent - URI is of the file chosen by the User in the
//File picker
uriFileURI = data.getData();
if(uriFileURI != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
final int intFlags = data.getFlags()&(Intent.FLAG_GRANT_READ_URI_PERMISSION|Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
getContentResolver().takePersistableUriPermission(data.getData(), intFlags);
}
//Check if URI was returned or not; NULL is returned if file was chosen from
//via gallery share option
//In such a case, the URI is retrieved from ClipData object of the Intent
if (uriFileURI == null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN && data.getClipData().getItemCount() > 0)
uriFileURI = data.getClipData().getItemAt(0).getUri();
//Log File URI
Log.i("CloudMedia", "File Uri: " + String.valueOf(uriFileURI));
//Generate Absolute File name to publish on Title
strFileName = getFileInformation(uriFileURI, MediaStore.Files.FileColumns.DISPLAY_NAME);
获取文件信息函数:
public String getFileInformation(Uri strFileURI, String strProjection) {
Cursor cursorFileId = getContentResolver().query(strFileURI,
new String[] {
strProjection
}, null, null, null);
if(cursorFileId.moveToFirst()) {
return cursorFileId.getString(cursorFileId.getColumnIndex(strProjection));
} else
return null;
}
因此 strFileName
不包含所选音频文件的扩展名。我也想要音频文件扩展名。
最佳答案
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String imgFullPath = cursor.getString(columnIndex);
cursor.close();//String file = uri.toString();
来源http://programmerguru.com/android-tutorial/how-to-pick-image-from-gallery/
关于java - Android Intent ACTION_GET_CONTENT 不返回文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36710102/
我正在使用 ACTION_GET_CONTENT,以便用户可以选择我的其余代码可以读取和处理的文本文件。 Intent intent = new Intent(); intent.setAction(
我在使用 ACTION_GET_CONTENT 从 Downloads 目录中选择文件时遇到问题。 如果我在本地存储中的 ES 资源管理器或文件管理器中删除任何文件,在我的应用程序中打开时,这些已删除
好的,我用这个开始我的功能 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType(mimeType
我在我的应用中实现了一个文件选择器,如下所示: Intent intent = new Intent(); intent.setType("*/*"); intent.setAction(Intent
Google Drive 似乎有一个响应 GET_CONTENT 操作的 Activity ,但它没有导出。 我可以在我的应用程序中使用另一种方法从云端硬盘中提取内容,而无需从 云端硬盘启动流程吗?自
我有以下 Intent : Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("text/*"); start
我正在为我的 Android 应用实现导入功能。我想让用户选择他们想要从设备上的外部存储(确切地说是下载目录)和其他在线文件存储(例如 DropBox 和 Google Drive)导入的文件。 我在
流程是: 用户需要选择要使用的文本文件以及弹出的默认 Android 资源管理器。 然后我想存储包含文件名的字符串,以实际打开文件进行读取。 我想打开该文件并将其重写为应用内部存储上的新文件。 我想从
我正在尝试打开最近的窗口,该窗口只能选择图像和 pdf Intent intent = new Intent(); intent.setType("image/*"); intent.setActio
我正在尝试将文件选择器 Intent 中的选定文件(不限于图像,它可以是任何文件)放入一个 zip 文件。我需要完整的文件路径才能执行此操作,但 Intent 仅提供 uri 路径。 我试过 .get
我有一个使用 ACTION_GET_CONTENT 的已发布应用程序 Intent 让用户选择他/她的一张照片。这是启动 Intent 的代码: Intent intent = new Intent(
我正在尝试在 android 应用程序中阅读 pdf 文件。 触发以下 Intent 以获取 URI。 Intent intent = new Intent(Intent.ACTION_GET_CON
我的问题很简单。是否可以通过 Intent.ACTION_GET_CONTENT 以某种方式传递额外的数据?其中Activity收到Intent在它的onActivityResult()能读出吗? 现
我需要完成这些步骤: 让用户选择一个文件(任何类型的文件) 获取永久引用以便稍后访问文件或复制到我的内部存储。 第一个真的很简单。使用 Intent.ACTION_GET_CONTENT 获取文件没有
我正在尝试获取用户选择的文件的路径,为结果调用 intent ACTION_GET_CONTENT。 问题是当从文件管理器中选择一个音频文件时, Intent 不返回文件的扩展名(我检查过的文件名中有
我试图只显示 MP3 文件: Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("audio/mp3"); s
Web 和 stackoverflow 包含几个示例如何使用 ACTION_GET_CONTENT Intent 从另一个 Android 应用程序获取文件(例如,将其用作电子邮件附件)。但是我必须实
我正在开发一个应用程序,在此 Activity 中按下一个按钮,可以选择要上传的任何文件。文件选择器加载正确,但所有图像都无法选择(变灰)。我在 Manifest 文件中添加了 READ_EXTERN
在我的应用中,我需要从用户的库中获取音频文件。 为此,我将其称为 Intent: Intent selectIntent = new Intent(Intent.ACTION_GET_CONTENT)
作为docs说:“ACTION_GET_CONTENT 可以让用户浏览网络并下载所需的数据”。这就是我需要的,来自 Google Images。虽然,如果我使用此 Intent 的类型,应用程序会崩溃
我是一名优秀的程序员,十分优秀!