add Ringtone at phone ringtone

本文介绍如何通过MediaStore和RingtoneManager两个类实现在Android设备上读取所有音频文件并将其设置为电话铃声的方法。核心步骤包括遍历获取手机上的音频文件路径及名称,更新媒体库中选中音频的铃声属性,并使用RingtoneManager将其设为默认铃声。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 接到一个任务:在settings里面的phone ringtone添加手机自定义铃声。问题的关键是如何处理好从手机的内存里读出所有的音频文件,并设置为手机的电话铃声。关键这俩个类:MedieStore、RingtoneManager。

列出手机里面的所有音频文件:
for (int i = 0; i < mAudioCursor.getCount(); i++) {
mAudioCursor.moveToNext();
int indexTitle = mAudioCursor
.getColumnIndex(MediaStore.Audio.AudioColumns.TITLE);
String path = mAudioCursor.getString(mAudioCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
String strTitle = mAudioCursor.getString(indexTitle);
mItems[i] = strTitle;
Itemsuri[i] = path;
}

将选择的铃声设置为手机铃声:
private void updateMediaStore(String path){
ContentValues cv = new ContentValues();
Uri uri = MediaStore.Audio.Media.getContentUriForPath(path);
Cursor cursor = this.getContentResolver().query(uri, null,
MediaStore.MediaColumns.DATA + “=?”, new String[] { path },null);
String _id = null;
if (cursor.moveToFirst() && cursor.getCount() > 0) {
_id = cursor.getString(0);
cv.put(MediaStore.Audio.Media.IS_RINGTONE, true);
cv.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
cv.put(MediaStore.Audio.Media.IS_ALARM, true);
cv.put(MediaStore.Audio.Media.IS_MUSIC, true);
}
getContentResolver().update(uri, cv, MediaStore.MediaColumns.DATA + “=?”,new String[] { path });
Uri newUri = ContentUris.withAppendedId(uri, Long.valueOf(_id));
RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALL, newUri);
}
“`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值