android raw获取uri_音频-获取存储在android的res / raw文件夹中的.mp3文件的URI
音频-获取存储在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相关推荐
- Python学习:获取文件夹中最新的文件/文件夹
文章概述 获取最新修改文件 关于lambda的用法 os.path.getmtime用法 获取最新修改文件 获取文件夹中,最新修改过的文件或者文件夹 import os # 文件夹目录 path=&q ...
- php获取文件夹中的音乐文件_PHP获取音频文件信息的方法
本篇文章主要介绍PHP获取音频文件信息的方法,感兴趣的朋友参考下,希望对大家有所帮助. 项目需求:现在有一个音频文件上传的功能,在上传后PHP需要获取这个音频文件的相关信息,例如:时长等,由于这个文件 ...
- c#winform如何获取服务器指定文件夹中所有的文件信息,winform 读取某个目录下的所有图片并显示到pictureBox 附完整源码...
[实例简介]产品电子报价 功能实现 [实例截图] [核心代码] using System; using System.Collections.Generic; using System.Compone ...
- android adb pull 文件夹,android – 我如何adb拉SD文件夹中的所有文件
单文件/文件夹使用拉: adb pull "/sdcard/Folder1" 输出: adb pull "/sdcard/Folder1" pull: buil ...
- android 删除文件夹中的所有文件,怎么删除文件夹中所有数据
Java code/** * 删除文件夹 * @param filePathAndName String 文件夹路径及名称 如c:/fqf * @param fileContent String * ...
- 获取文件夹中所有文件的文件名[重复]
本文翻译自:Getting the filenames of all files in a folder [duplicate] Possible Duplicate: 可能重复: Read all ...
- php获取文件夹中所有lrc格式文件,提取lrc文件中内容
功能说明: 一个文件夹内有MP3文件和lrc(歌词文件),我要提取文件夹下所有的lrc文件内容中的标题. 一个lrc文件的内容像这样: [al:新概念英语(一)] [ar:MP3 同步字幕版(美音)] ...
- 获取文件夹下的所有文件,并将对应格式文件复制移动到对应文件夹[学生信息收集和处理]
import os import shutil 遍历所有文件夹,获取对应格式的文件数据,并复制整理到不同的文件夹 def GetDirectory(path):""":p ...
- android 获取文件夹下的所有文件
昨天,在做工作时,需要遍历所有一个文件夹下的所有文件夹,当时自己也不知道怎么做,后来在网上搜索了一些资料,发现其实也很简单. 1.获取SD是否可以读写,如果可以,则传入文件的路径 /*读取输入的某个文 ...
最新文章
- 【BZOJ3926】[Zjoi2015]诸神眷顾的幻想乡 广义后缀自动机
- 大数据SQL日常学习——CASE WHEN THEN END用法
- Codeforces Round #552 (Div. 3)D、E题解
- 易语言 取dns服务器,易语言自动修改内网IP地址和DNS
- 清华大学《操作系统》(六):非连续内存分配 段式、页式、段页式存储管理
- Sonya and Robots(set应用)
- Problem A Codeforces 20C 最短路(dj,spfa)
- 三菱PLC缓冲表操作
- 拉格朗日插值的优缺点_如何直观地理解拉格朗日插值法?
- 基础一:一切都是对象
- 矩阵可逆的条件以及特征值、特征向量与可对角化条件
- 【计算机毕业设计】026在线文档管理系统
- 百分制成绩转换为五分制成绩
- Unity3D新手教学,让你十二小时,从入门到掌握!(三 )
- Vivo手机实现录音转文字的方法,图文步骤详解,特别简单
- Exynos_4412——IIC总线概述
- 基于java面对对象编程范式笔记
- 第四次网页前端培训笔记(css常用属性设置)
- 数据中台体系化建设核心方法论
- 电脑通过豌豆荚连接手机或者平板不成功,豌豆荚版本6.8.*