2

我正在尝试播放我为联系人保存的铃声,如下所述

        Mringtone = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);

        Mringtone.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
                RingtoneManager.TYPE_ALL);
        Mringtone.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE,
                "Select RingTone");
        Mringtone.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,
                (Uri) Uri.parse(SelectedRingTone));
        this.startActivityForResult(Mringtone, 0);

在活动结果上,我得到了铃声 URI 并将其保存到我的表中

CustomRingToneUri = data.getParcelableExtra(mRingtoneManager.EXTRA_RINGTONE_PICKED_URI);

            if (CustomRingToneUri != null) {

                int updateRes=            getContentResolver().update(URI_MY_TABLE,contactRingTone(CustomRingToneUri.toString()),
                        "_id = " + "\"" + receivedExtra + "\"", null);
}

因此它按预期正确更新,并且我正在使用 PhoneStateListener 接收来电,我正在尝试从我从表中收到的 URI 播放铃声,如下所示

Uri ConvertedToUri;

        ConvertedToUri = Uri.parse(IncomingNumberRingtonePath);
        ringTone=ringToneManager.getRingtone(getApplicationContext(), ConvertedToUri);
        if (ringTone.isPlaying())
            ringTone.stop();
        ringTone.play();

如果我接到来电,我会同时播放默认铃声和保存铃声。我也尝试过使用stopPreviousRingTone。这对我没有帮助。请给我一些可行的方法

谢谢文卡特拉曼

4

0 回答 0