如何获取Android中的当前铃声?

时间:2014-03-19 10:41:40

标签: android uri ringtone android-audiomanager

我找到了很多关于如何获取默认铃声的示例。这样的事情:

Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
        Ringtone ringtone = RingtoneManager.getRingtone(getApplicationContext(),  alert);
         ringtone.setStreamType(AudioManager.STREAM_RING);
         ringtone.play();

但我想得到用户设定的实际当前铃声。

7 个答案:

答案 0 :(得分:13)

我也在努力解决这个问题,所以解决方案是:

Uri defaultRingtoneUri = RingtoneManager.getActualDefaultRingtoneUri(getActivity().getApplicationContext(), RingtoneManager.TYPE_RINGTONE);
Ringtone defaultRingtone = RingtoneManager.getRingtone(getActivity(), defaultRingtoneUri);

答案 1 :(得分:2)

这是解决方案。

内部onActivityResult

Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);  
Ringtone r=RingtoneManager.getRingtone(this, uri); 
String ringToneName=r.getTitle(this);
Toast.makeText(getApplicationContext(), "Ringtone Name : "+ringToneName,Toast.LENGTH_SHORT).show();

但它会在模拟器中显示exception因为模拟器中没有铃声所以在移动设备中执行此操作

答案 2 :(得分:1)

尝试:

Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI);

答案 3 :(得分:0)

我也经常搜索你的问题。 最后得到了解决方案。

在按钮中使用以下代码获取铃声意图。

public void pickRingtone(View view) {
        // TODO Auto-generated method.stub

        Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Ringtone");

    // for existing ringtone
        Uri urie = RingtoneManager.getActualDefaultRingtoneUri(
                getApplicationContext(), RingtoneManager.TYPE_RINGTONE);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, urie);

    startActivityForResult(intent, 5);
}

答案 4 :(得分:0)

这是dgabor答案的延伸。 只需添加Uri defaultRintoneUri = RingtoneManager.getActualDefaultRingtoneUri(getApplicationContext(), RingtoneManager.TYPE_RINGTONE); Ringtone defaultRingtone = RingtoneManager.getRingtone(getApplicationContext(), defaultRintoneUri); defaultRingtone.play(); 即可播放铃声。

<init-param>
        <param-name>USER</param-name>
        <param-value>${USER}</param-value>
</init-param>

答案 5 :(得分:0)

试试这个:

words = new String[length];

答案 6 :(得分:0)

Alexander The Great 的回答是正确的。但是,我简化了。

Uri currentRingtonUri = RingtoneManager.getActualDefaultRingtoneUri(getApplicationContext(), RingtoneManager.TYPE_RINGTONE);