android如何替换contact的来电铃声

如果知道contactId,那么可以这样获取已有的ringtone:

 public String getContactRington(long contactId) {
        String rington = "";
        String[] projection = { ContactsContract.Contacts.CUSTOM_RINGTONE };
        Uri contactUri = ContentUris.withAppendedId(
                ContactsContract.Contacts.CONTENT_URI, contactId);
        Cursor cursor = this.getContentResolver().query(contactUri,
                projection, null, null, null);
        if (cursor == null) {
            return rington;
        }
        while (cursor.moveToNext()) {
            rington = cursor.getString(0);
            break;
        }

        cursor.close();
        return rington;
    }

用以下代码可以去调用系统接口改变铃声:

 private void doPickRingtone(String ringtones) {
        Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
                RingtoneManager.TYPE_RINGTONE);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);

        try {
            Uri ringtoneUri;
            if (ringtones != null
                    && ringtones.length() > 0) {
                ringtoneUri = Uri.parse(ringtones);
            } else {
                ringtoneUri = RingtoneManager
                        .getDefaultUri(RingtoneManager.TYPE_RINGTONE);
            }
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,
                    ringtoneUri);
            startActivityForResult(intent, RESUTL_RINGTONE_PICKED);
        } catch (Exception ex) {
            MktLog.i(TAG,"doPickRingtone:" + ex.toString());
        }
    }

选择铃声完点击确认:

  private void handleRingtonePicked(Uri pickedUri) {
        updateContactRington(mContactId,pickedUri.toString());
    }

    public boolean updateContactRington(long contactId, String rington) {
        ContentValues values = new ContentValues();
        values.put(ContactsContract.Contacts.CUSTOM_RINGTONE, rington);
        Uri contactUri = ContentUris.withAppendedId(
                ContactsContract.Contacts.CONTENT_URI, contactId);
        this.getContentResolver().update(contactUri, values, null, null);
        return true;
    }

时间: 2024-12-21 23:00:20

android如何替换contact的来电铃声的相关文章

Android之来电铃声设置

从文件管理器中设置一首歌曲为来电铃声铃声,进入拨号盘设置中点击提示音和振动,来电铃声就会变成默认铃声 从文件管理器中设置一首歌曲为来电铃声铃声,进入拨号盘设置中点击提示音和振动,来电铃声就会变成默认铃声歌曲是SD卡中的1.进入文件管理器2.从SD卡中设置一首歌曲为来电铃声3.进入settings>>提示音和通知>>手机铃声,查看来电铃声的歌曲是刚刚设置的外部歌曲4.进入拨号盘设置中,点击提示音和振动5.返回settings>>提示音和通知>>手机铃声,查看来

如何编写程序设置Android来电铃声

我们在拿到新手机后通常会为其设置来年铃声,那么怎样通过代码来设置Android来电铃声,本文就为大家实例讲解下. 1.如果读到的是音频文件路径,需要先将音乐文件插入到多媒体库. Java代码 //设置--铃声的具体方法 public void setMyRingtone(String path) { File sdfile = new File(path); ContentValues values = new ContentValues(); values.put(MediaStore.Med

我的Android进阶之旅------>Android系统设置默认来电铃声、闹钟铃声、通知铃声

首先了解Android系统本身提供的默认铃声文件,这些文件都放在  /system/media/audio  目录下. /system/media/audio/ringtones   系统来电铃声 /system/media/audio/notifications  系统通知铃声 /system/media/audio/alarms 系统闹钟铃声 自己下载的铃声,可以放在SD卡的music目录.主要包括:一般的铃声(如来电铃声).闹钟铃声和通知铃声.这三种铃声分别放在如下的目录中: /sdcar

android 在音乐播放器中设置一首歌曲为来电铃声,设置不起作用

AudioProfile,情景模式,多卡设置铃声 系统开启Multi_ringtone_support.进入菜单--音乐--歌曲列表--长按一首歌曲选择设为手机铃声,提示已成功设置,但是进入设置中情景模式查看,仍然是默认铃声.打电话后铃声还为默认铃声. 修改: AudioProfileService.java mRingtoneObserver = new ContentObserver(new Handler())函数里面的 case GENERAL: case OUTDOOR: if (mE

Android 开发替换Launcher

做android产品的时候,根据需求会制定各种各样的Launcher,因此,在此记录替换系统Launcher的流程. 1.修改frameworks/base/core/java/android/content/Intent.java中 //public static finalString CATEGORY_HOME = "android.intent.category.HOME";改为        public static final String CATEGORY_RB_HOM

android 如何替换系统的默认静态壁纸?

请用图片替换掉frameworks的res/res目录下drawable-nodpi/drawable-xhpi/drawable-xxhdpi/drawable-xxxhdpi这四个folder下面的default_wallpaper.jpg. 如果是new整个project ,请忽略下面的步骤. 如果是模块编译framework-res.apk,请先删除alps/out/target/common/obj/APPS/framework-res_intermediates这个folder,然后

Android 开发总结之获取来电号码

创建一个广播事件接收者,并在清单文件中注册此文件,过滤意图为android.intent.action.PHONE_STATE在intellij中因为未提示还以为没有这个,其实是有的,增加权限android.permission.READ_PHONE_STATE <receiver android:name=".receiver.CallReceiver"> <intent-filter> <action android:name="androi

android动态替换Fragment向下传递数据

以前传递数据都是使用Intent进行传递,但是intent是跳转,我们这个是动态替换 所以刚开始也是一脸懵逼,百度也百度不到,就自己慢慢摸索出来了: 话不多说,直接上代码:(主要核心代码加粗) package com.smartgentechnology;import android.content.Intent;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import

android开发 替换bitmap中的颜色值

/** * 将bitmap中的某种颜色值替换成新的颜色 * @param bitmap * @param oldColor * @param newColor * @return */ public static Bitmap replaceBitmapColor(Bitmap oldBitmap,int oldColor,int newColor) { //相关说明可参考 http://xys289187120.blog.51cto.com/3361352/657590/ Bitmap mBi