从SD卡的文件设置铃声的通知

我的目标是从正在从与在应用程序存储到SD卡中的文件集的用户通知声音。 我使用此代码:

if(path != null){ File k = new File(path, "moment.mp3"); ContentValues values = new ContentValues(); values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath()); values.put(MediaStore.MediaColumns.TITLE, "My Song title"); values.put(MediaStore.MediaColumns.SIZE, 215454); values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); values.put(MediaStore.Audio.Media.ARTIST, "Some Artist"); values.put(MediaStore.Audio.Media.DURATION, 230); values.put(MediaStore.Audio.Media.IS_RINGTONE, false); values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true); values.put(MediaStore.Audio.Media.IS_ALARM, false); values.put(MediaStore.Audio.Media.IS_MUSIC, false); values.put(MediaStore.MediaColumns.DISPLAY_NAME, "Some Name"); //Insert it into the database Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath()); Uri newUri = MainActivity.this.getContentResolver().insert(uri, values); RingtoneManager.setActualDefaultRingtoneUri( MainActivity.this, RingtoneManager.TYPE_NOTIFICATION, newUri ); //RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_NOTIFICATION, newUri); Toast.makeText(this, "Notification Ringtone Set", Toast.LENGTH_SHORT).show(); }

当我运行该设备上的我不断收到错误:

06-12 15:19:36.741: ERROR/Database(2847): Error inserting is_alarm=false is_ringtone=false artist_id=35 is_music=false album_id=-1 title=My Song title duration=230 is_notification=true title_key=%D%\%%P%H%F%8%%R%<%R%B%4% mime_type=audio/mp3 date_added=1276370376 _display_name=moment.mp3 _size=215454 _data=/mnt/sdcard/Android/data/_MY APP PATH_/files/moment.mp3 06-12 15:19:36.741: ERROR/Database(2847): android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed

我见过别人使用这种技术,我无法找到任何文件上实际值需要在传递成功地将文件添加到了Android系统,以便它可以设置为一个通知。

--------------解决方案-------------

纠正你的代码如下:

if(path != null){

File k = new File(path, "moment.mp3");

ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "My Song title");
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mpeg");
values.put(MediaStore.Audio.Media.ARTIST, "Some Artist");
values.put(MediaStore.Audio.Media.IS_RINGTONE, false);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
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 = getContentResolver().insert(uri, values);

RingtoneManager.setActualDefaultRingtoneUri(
MainActivity.this,
RingtoneManager.TYPE_NOTIFICATION,
newUri
);

切记要小心测试这个代码! 它只是如实作品第一次。 如果您尝试再次运行相同的代码,你会试图推在MediaStore的表中的重复条目,并SQLite数据库不会让你,让你完全一样的错误。 你要么重命名文件,并添加它的另一个实例,或者进去,删除该条目,然后重试。 要做到这一点,你可以使用RingDroid。 只要确保你拥有所有的音频可视,并搜索文件名,然后从那里将其删除。 或者,你可以看看他们的源代码中删除从表中。

韦斯顿要删除报名表数据库和加入,将制定出针对此问题之后

删除入口代码

getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + k.getAbsolutePath() + "\"", null);

Uri newUri = getContentResolver().insert(uri, values);

记得把“使用-许可”标签,在AndroidManifest.xmlandroid:name属性设置为android.permission.WRITE_SETTINGS.

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

分类:机器人 时间:2012-01-01 人气:0
本文关键词: 机器人,mediastore,铃声
分享到:

相关文章

  • 从删除列表中的Andr​​oid铃音 2014-02-10

    我做了一个程序来改变机器人的铃声. 主要的代码是在这里 k = new File(txtRTC.getText().toString()); toneName=k.getName().split("."); ContentValues values = new ContentValues(); //nameTone=nameTone(""); values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());

  • 关于GridView和使用数组问题 2014-09-06

    首先,即时通讯新开发的Andr​​oid和这个论坛. 我的问题是这样的:我是在看"世界,你好观点:GridView控件"的例子,在想,如何动态地加载所有我的图片. 例如在ImageAdapter.java文件,在年底有: private Integer[] mThumbIds = { R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_

  • 如何设置铃声之前清除Mediastore 2013-05-15

    当我设置从我的应用程序铃声只能用一次,但再次运行代码时,它试图创建的媒体商店,这将创建一个问题重复的条目. 如果没有每个声音文件创建单独唯一的文件名,我想解决这个问题. 在设置音频文件作为铃声,我试图用它来解决地雷问题:我发现这个解决方案张贴在这里的答案. 当我尝试在下面我的代码,我得到两个错误. 一个是SQLiteException,另一个是其由squlite错误,这是Java代码后引起一个RuntimeException. String TAG = "CFFS"; File dir

  • 保存多个机器人的音板听起来要么铃声或通知使用上下文菜单的方法 2013-08-20

    如何设置所有的声音从我已经不是作为铃声或通知创造了音板的应用程序? 我知道如何实现上下文菜单代码和注册上下文菜单中的每个按钮. 我无法弄清楚是怎么处理多个按钮和只有一个上下文菜单的声音. 我一直在通过各种例子在这个网站,并试图提供的所有解决方案,但考虑到在这个网站类似的问题每个响应是不是太含糊或不完整. 可有人请我提供解决我的问题没有过于含糊? 我知道你不想写别人的代码,他们,但它会节省很多newbs和我一样搜索和头痛的无数个小时,如果有人能够提供正确的代码的一个简单的例子来提出这个要求的工作.

  • Android的手机铃声设置外部硬编码目录 2013-01-25

    我的应用程序设置使用MediaStore类的铃声. 一切工作正常,但是我有关于铃声的默认路径的问题. 路径我写的.mp3到外部存储/ SD卡/媒体/音频/铃声......我将不得不以编程方式检查是否每个目录提交到一个保存路径之前存在或这条道路普遍的,所有的机器人? 我已经测试了3设备我的应用程序,它每一次的工作,但莫不是其中设备使用一个比硬编码的(上述)等其他目录的情况? 提前致谢. --------------解决方案------------- 我相信道路是普遍的. 但是,如果一个根用户决定淤

  • 保存听起来而是使用号位置的声音的标题铃声 2012-01-15

    我有一个Android的应用程序音板用户可以长按按钮来的声音存放为铃声,通知或报警. 一切工作正常和声音保存到SD卡,并设置为默认的声音,但声音名称设置为号位置,他们是在应用程序. 例如,如果我救了第一个声音,这是名为"笑",它将保存到SD卡,并在铃声列表为"1"的出现,而不是"笑". 我想要的声音与他们的标题不是他们的号码保存. 我需要做什么在我的代码更改为解决这个问题? 我使用的是阵列声音标题设置的按钮等.以下是我有一个保存声音的代码: pu

  • 如何分配的铃声和声音设置 2012-01-28

    如何分配的铃声和声音设置 --------------解决方案------------- 更改铃声设置 您可以通过点击设置 > 声音访问您的铃声设置. 更改振铃声音 1.进入应用程序 > 设置 > 声音屏幕. 2.将振动设置上有你的手机震动,以及播放声音信号来电或新邮件时. 注意 :如果你有铃声,语音信箱,或者设置为无声音信息,那么你的手机won’吨振动,即使此设置为开. 设置默认声音来电 1.进入应用程序 > 设置 > 声音屏幕. 2.点击铃声,并从声音选择声音. 注意

  • 安卓铃声被保存,但不能设置为主动/默认铃声 2012-02-19

    我工作的一个Android应用程序,允许上的按钮用户长时间单击保存声音作为铃声. 我使用下面的代码这样做. 该代码当前工作,​​以节省在铃声列表中的文件被使用,但它不会自动设置声音为默认铃声. 我已经找遍了所有周围,没有多少运气上保存声音作为默认/主动找到铃声清晰的指导. 截至目前,用户可以长按一下按钮,然后进入菜单>声音>手机铃声菜单,并从列表中选择,但似乎有点不方便,当我知道这是可能有它只是设置为积极铃声立竿见影. 任何见解,以我缺少的是什么? 非常感激! public boolean s

  • 采用了Android机器人图标中的应用(版权法,服务条款) 2012-02-21

    我正在写一个应用程序,我想使用包含了Android的"绿色机器人几个背景,甚至一个谷歌表示机器人下面. 这是对服务条款的规定或是否违反版权法? 如果是反对任何法律,会不会的问题,如果使用图标的应用程序是免费还是收费? --------------解决方案------------- 根据Android的品牌指南,你被允许使用Android机器人图标,只要你给适当的归属(谷歌的归属政策). 我敢肯定,你将无法虽然使用谷歌标识. 看看谷歌的品牌特征条款和条件以获得更多信息. 是的,你不应该这样做,但考

  • 如何创建特定联系人的铃声? 2012-03-03

    如何创建特定联系人的铃声? --------------解决方案------------- 您可以通过点击设置 > 声音访问您的铃声设置. 更改振铃声音 1.进入应用程序 > 设置 > 声音屏幕. 2.将振动设置上有你的手机震动,以及播放声音信号来电或新邮件时. 注意 :如果你有铃声,语音信箱,或者设置为无声音信息,那么你的手机won’吨振动,即使此设置为开. 设置默认声音来电 1.进入应用程序 > 设置 > 声音屏幕. 2.点击铃声,并从声音选择声音. 注意 :如果有啊

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.323 (s). 10 q(s)