本文主要介绍如何将音乐文件打包到程序中并设置为铃声

首先,将我们的铃声文件放到res/raw目录下,没有的话就建一个raw目录

如图

canon.mp3文件放到raw目录下

然后在程序里读取这个文件:

代码为

getResources().openRawResource(R.raw.canon);

然后将读出的内容写到sdcard上

程序能直接把sdcard上的一个文件设置为铃声。

具体的实现代码如下

setring.java

package zy.ring; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import android.app.Activity; import android.content.ContentValues; import android.media.RingtoneManager; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.util.Log; import android.widget.Toast; public class setring extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); InputStream inputStream = null; try { inputStream = getResources().openRawResource(R.raw.canon); byte[] reader = new byte[inputStream.available()]; while (inputStream.read(reader) != -1) {} writefile(reader,"/sdcard/canon.mp3"); Log.i("setring", "success"); } catch(IOException e) { Log.i("setring", e.getMessage()); } finally { if (inputStream != null) { try { inputStream.close(); } catch (IOException e) { Log.i("setring", e.getMessage()); } } } setMyRingtone(); } public void writefile(byte[] str,String path ) { File file; FileOutputStream out; try { //创建文件 file = new File(path); file.createNewFile(); //打开文件file的OutputStream out = new FileOutputStream(file); //将字符串转换成byte数组写入文件 out.write(str); //关闭文件file的OutputStream out.close(); } catch (IOException e) { //将出错信息打印到Logcat DisplayToast(e.toString()); } } public void setMyRingtone() { File k = new File("/sdcard/canon.mp3"); // 设置歌曲路径 ContentValues values = new ContentValues(); values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath()); values.put(MediaStore.MediaColumns.TITLE, k.getName()); values.put(MediaStore.MediaColumns.SIZE, 8474325); values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); values.put(MediaStore.Audio.Media.ARTIST, "Madonna"); values.put(MediaStore.Audio.Media.DURATION, 230); values.put(MediaStore.Audio.Media.IS_RINGTONE, true); values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false); values.put(MediaStore.Audio.Media.IS_ALARM, false); values.put(MediaStore.Audio.Media.IS_MUSIC, false); // Insert it into the database Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath()); Uri newUri = this.getContentResolver().insert(uri, values); RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE, newUri); ;} public void DisplayToast(String str) { Toast.makeText(this,str,Toast.LENGTH_SHORT).show(); } }

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="zy.ring" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".setring" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="3" /> <uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission> </manifest>

需要加入权限

<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>

程序运行就能将包中的canon.mp3拷贝到sdcard并且设置为默认铃声了

当然,你也可以拷贝这个文件到自己的私有目录data/data/zy.ring/路径下也可以

最后我们打开手机的设置铃声界面,可以看到我们的canon.mp3设置成了默认的铃声

Android 将音乐文件打包到程序中并设置为铃声的详细方法介绍相关推荐

  1. 本文主要介绍如何将音乐文件打包到程序中并设置为铃声

    canon.mp3文件放到raw目录下 然后在程序里读取这个文件: 代码为 view plaincopy to clipboardprint? getResources().openRawResour ...

  2. 将uni-app打包的H5放在 Android程序中在 webview 显示的两种方法

    将uni-app打包的H5放在 Android程序中在 webview 显示的两种方法 前言 Hash History 完事 前言 之前有个项目要同时做小程序和APP,本着节省时间的想法,研究了下un ...

  3. Kvaser Android驱动程序已经在许多应用程序中得到了成功的应用

    Kvaser的Android驱动程序,使您能够将Kvaser USB和Wifi等CAN总线接口连接到基于Android的平板电脑和智能手机上,同时提供Java和C/ c++ API,用于为基于Andr ...

  4. 怎么将c语言作业保存到word,C++程序中导出Word文档的简易方法_c语言

    如果您要在应用程序中处理Word文档,可以参考MSDN. Lori Turner. Automating Microsoft Office 97 and Office 2000,该文内容详细全面,但是 ...

  5. 微信小程序中如何设置textarea或者van-field中的placeholder换行显示

    微信小程序中如何设置textarea中的placeholder换行显示 van-field 中直接修改textarea 标签的样式即可 <textarea class="txt_wor ...

  6. Qt 程序中获取 CPUID UUID 等系统信息的方法(win 平台,wmic)

    Qt 程序中获取 CPUID UUID 等系统信息的方法(win 平台,wmic) 最近的程序中要加入序列号注册的功能.这就需要获得电脑的一些基本信息,比如 UUID .或者 CPUID 一类的固定的 ...

  7. python可以实现哪些功能_Python中实现机器学习功能的四种方法介绍

    本篇文章给大家带来的内容是关于Python中实现机器学习功能的四种方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在本文中,我们将介绍从数据集中选择要素的不同方法; 并使用S ...

  8. java 获取键盘点击_Java中获取键盘输入值的三种方法介绍

    程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这 ...

  9. android修改密码功能,安卓手机设置开机密码几种方法介绍

    安卓系统的手机设置开机密码一般有2-3种,其中包括密码锁.图案锁.PIN密码锁等几项.这几项都能实现开机需要输入相应的密码才能使用手机的,所以也算是开机锁了.好了,下面小编就教大家怎么设置这几种锁. ...

最新文章

  1. php中字符串分割函数
  2. Envoy实现.NET架构的网关(一)静态配置与文件动态配置
  3. mybatis=<>的写法
  4. JDK 8中的流驱动的集合功能
  5. 注解由谁读取并解析的?
  6. ibm笔记本电脑电池_笔记本电池怎么充电 笔记本电脑电池充电方法【详解】
  7. python程序化 k线指定时间更新_Python之路 14 K线时间序列管理器
  8. 华为鲁勇:华为5G专利数量全球第一 比美国所有企业还多
  9. oracle执行计划更新,请教update和delete的执行计划
  10. android网页去广告插件下载,Adblock Plus(去广告插件)APP增强稳定版
  11. 从T7模型中取训练参数
  12. visual studio发布网站的时候水晶报表rpt格式文件不是最新的解决
  13. 基于 Laravel 9 和 Bulma 开发的个人博客
  14. 电子商务网站设计与实现
  15. Si5395/94/92时钟芯片配置步骤
  16. PicGo: image not found in clipboard
  17. 正大国际:期货日内波段交易
  18. 让计算机休眠的命令,电脑怎么取消休眠?关闭休眠命令是什么?
  19. Python爬虫实战 - 抓取BOSS直聘职位描述 和 数据清洗
  20. 哪个选项不是python文件打开的合法模式组合_下面代码的输出结果是( ):

热门文章

  1. 用邮箱发简历 应注意哪些
  2. 计算机公司 英语日常用语,计算机专用英语词汇1500词SampleTextSampleText电脑日常用语.PDF...
  3. Windows下80端口被pid为4的System进程占用解决方法
  4. 雅特丽单片机学习——时钟配置
  5. 在Linux上配置SMB文件共享
  6. js满三个增加一个逗号
  7. 自动量热仪与热容量的关联,两者之间的工作原理与实际操作方式方法?
  8. 梦幻西游一个服务器最多多少人,梦幻西游三维版哪个服务器人多 梦幻西游三维版服务器选择攻略_蚕豆网新闻...
  9. 国内有什么好用的、能落地的AR远程协助解决方案?
  10. HUAWEI Mate RS 保时捷设计国内开售 重新定义奢华手机