音频-获取存储在android的res / raw文件夹中的.mp3文件的URI

我在res / raw文件夹中存储了许多.mp3文件。

我正在使用以下代码获取.mp3文件的URI。

Uri.parse("android.resource:///com.my.android.sharesound/"+resId);

这将返回:android.resource:///com.my.android.sharesound/2130968609

现在,我正在使用此URI创建共享意图

shareIntent.putExtra(Intent.EXTRA_STREAM,Uri.parse("android.resource://com.my.android.sharesound/"+resId));

startActivity(Intent.createChooser(shareIntent,"Share Sound");

当我选择任何邮件应用程序例如。 来自Gmail或Yahoo Mail的共享意向,成功附加了mp3文件。 但它显示2130968609(作为附件)

我不希望resourceId(2130968609)出现。

我想显示fileName.mp3

我怎样才能做到这一点? 我想念什么吗?

要么

是否有其他方法可以将通过res / raw存储的.mp3文件通过Share Intent附加到邮件。

7个解决方案

158 votes

最终,经过大量搜索,我找到了解决方案。

如果要获取任何资源URI,则有两种方法:

使用资源名称

语法:Uri.parse("android.resource://com.my.package/" + R.drawable.icon);

范例:Uri.parse("android.resource://com.my.package/" + R.drawable.icon);

使用资源ID

语法:Uri.parse("android.resource://com.my.package/" + R.drawable.icon);

范例:Uri.parse("android.resource://com.my.package/" + R.drawable.icon);

这是获取存储在drawable文件夹中的任何图像文件的URI的示例。

同样,您可以获取res / raw文件夹的URI。

就我而言,我使用第一种方法,即。 使用资源名称

Kartik Domadiya answered 2020-01-07T13:51:16Z

34 votes

这项工作就像魔术:假设将mp3保存为原始文件夹

notification_sound.mp3

然后简单地做到这一点:

Uri uri=Uri.parse("android.resource://"+getPackageName()+"/raw/notification_sound");

Andrew Sam answered 2020-01-07T13:51:45Z

5 votes

以下是一些可以帮助某人的方法:

public Uri getRawUri(String filename) {

return Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + File.pathSeparator + File.separator + getPackageName() + "/raw/" + filename);

}

public Uri getDrawableUri(String filename) {

return Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + File.pathSeparator + File.separator + getPackageName() + "/drawable/" + filename);

}

public Uri getMipmapUri(String filename) {

return Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + File.pathSeparator + File.separator + getPackageName() + "/mipmap/" + filename);

}

只需这样调用方法:

Uri rawUri = getRawUri("myFile.filetype");

Samuel Liew answered 2020-01-07T13:52:09Z

2 votes

一线回答

RingtoneManager.getRingtone(getContext(),Uri.parse("android.resource://com.my.package/" + R.raw.fileName)).play();

Radesh answered 2020-01-07T13:52:29Z

1 votes

尝试将文件保存到SDCard,然后发送新的URI,

public boolean saveAs(int resSoundId){

byte[] buffer = null;

InputStream fIn = getBaseContext().getResources().openRawResource(resSoundId);

int size=0;

try {

size = fIn.available();

buffer = new byte[size];

fIn.read(buffer);

fIn.close();

} catch (IOException e) {

// TODO Auto-generated catch block

return false;

}

String path = "/sdcard/yourapp/temp/";

String filename = "filename"+".mp3";

boolean exists = (new File(path)).exists();

if (!exists){new File(path).mkdirs();}

FileOutputStream save;

try {

save = new FileOutputStream(path+filename);

save.write(buffer);

save.flush();

save.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

return false;

} catch (IOException e) {

// TODO Auto-generated catch block

return false;

}

电子邮件发送成功后,请记住删除文件。

Reno answered 2020-01-07T13:52:53Z

0 votes

这是获取任何资源的一种干净方法,

Uri.parse(String.format("android.resource://%s/%s/%s",this.getPackageName(),"resource_folder_name","file_name"));

Remario answered 2020-01-07T13:53:14Z

0 votes

不要自己构造字符串,请使用Uri.Builder:

/**

* @param resourceId identifies an application resource

* @return the Uri by which the application resource is accessed

*/

internal fun Context.getResourceUri(@AnyRes resourceId: Int): Uri = Uri.Builder()

.scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)

.authority(packageName)

.path(resourceId.toString())

.build()

从AOSP-DeskClock。

Dewey Reed answered 2020-01-07T13:53:39Z

android raw获取uri_音频-获取存储在android的res / raw文件夹中的.mp3文件的URI相关推荐

  1. Python学习:获取文件夹中最新的文件/文件夹

    文章概述 获取最新修改文件 关于lambda的用法 os.path.getmtime用法 获取最新修改文件 获取文件夹中,最新修改过的文件或者文件夹 import os # 文件夹目录 path=&q ...

  2. php获取文件夹中的音乐文件_PHP获取音频文件信息的方法

    本篇文章主要介绍PHP获取音频文件信息的方法,感兴趣的朋友参考下,希望对大家有所帮助. 项目需求:现在有一个音频文件上传的功能,在上传后PHP需要获取这个音频文件的相关信息,例如:时长等,由于这个文件 ...

  3. c#winform如何获取服务器指定文件夹中所有的文件信息,winform 读取某个目录下的所有图片并显示到pictureBox 附完整源码...

    [实例简介]产品电子报价 功能实现 [实例截图] [核心代码] using System; using System.Collections.Generic; using System.Compone ...

  4. android adb pull 文件夹,android – 我如何adb拉SD文件夹中的所有文件

    单文件/文件夹使用拉: adb pull "/sdcard/Folder1" 输出: adb pull "/sdcard/Folder1" pull: buil ...

  5. android 删除文件夹中的所有文件,怎么删除文件夹中所有数据

    Java code/** * 删除文件夹 * @param filePathAndName String 文件夹路径及名称 如c:/fqf * @param fileContent String * ...

  6. 获取文件夹中所有文件的文件名[重复]

    本文翻译自:Getting the filenames of all files in a folder [duplicate] Possible Duplicate: 可能重复: Read all ...

  7. php获取文件夹中所有lrc格式文件,提取lrc文件中内容

    功能说明: 一个文件夹内有MP3文件和lrc(歌词文件),我要提取文件夹下所有的lrc文件内容中的标题. 一个lrc文件的内容像这样: [al:新概念英语(一)] [ar:MP3 同步字幕版(美音)] ...

  8. 获取文件夹下的所有文件,并将对应格式文件复制移动到对应文件夹[学生信息收集和处理]

    import os import shutil 遍历所有文件夹,获取对应格式的文件数据,并复制整理到不同的文件夹 def GetDirectory(path):""":p ...

  9. android 获取文件夹下的所有文件

    昨天,在做工作时,需要遍历所有一个文件夹下的所有文件夹,当时自己也不知道怎么做,后来在网上搜索了一些资料,发现其实也很简单. 1.获取SD是否可以读写,如果可以,则传入文件的路径 /*读取输入的某个文 ...

最新文章

  1. 【BZOJ3926】[Zjoi2015]诸神眷顾的幻想乡 广义后缀自动机
  2. 大数据SQL日常学习——CASE WHEN THEN END用法
  3. Codeforces Round #552 (Div. 3)D、E题解
  4. 易语言 取dns服务器,易语言自动修改内网IP地址和DNS
  5. 清华大学《操作系统》(六):非连续内存分配 段式、页式、段页式存储管理
  6. Sonya and Robots(set应用)
  7. Problem A Codeforces 20C 最短路(dj,spfa)
  8. 三菱PLC缓冲表操作
  9. 拉格朗日插值的优缺点_如何直观地理解拉格朗日插值法?
  10. 基础一:一切都是对象
  11. 矩阵可逆的条件以及特征值、特征向量与可对角化条件
  12. 【计算机毕业设计】026在线文档管理系统
  13. 百分制成绩转换为五分制成绩
  14. Unity3D新手教学,让你十二小时,从入门到掌握!(三 )
  15. Vivo手机实现录音转文字的方法,图文步骤详解,特别简单
  16. Exynos_4412——IIC总线概述
  17. 基于java面对对象编程范式笔记
  18. 第四次网页前端培训笔记(css常用属性设置)
  19. 数据中台体系化建设核心方法论
  20. 电脑通过豌豆荚连接手机或者平板不成功,豌豆荚版本6.8.*

热门文章

  1. mimikatz抓取密码
  2. 【How2Pwn】DreamHack 中的Hook Overwrite问题
  3. sweetalert2中ajax用法,SweetAlert2例子
  4. 四条查看MySql版本号的命令
  5. mybatis解析-association实现原理详解
  6. JAVA笔记整理(1):进制转换
  7. 2012服务器系统程序在哪里,Windows Server
  8. 记录manjaro在新bios上启动的一些问题
  9. Python 实现学生管理系统(面向对象版)
  10. 一文读懂BLDC电机控制算法