如何在android

时间:2015-11-24 10:25:27

标签: android notifications sms ringtone

我想开发一个消息传递应用程序。在此消息传递应用程序中,用户可以更改默认的短信铃声。为此,我必须在对话中显示所有短信铃声。 每当用户选择短信铃声时,短信铃声的名称将在文本视图中设置,铃声将被设置为默认的短信铃声。我怎样才能做到这一点 ?

3 个答案:

答案 0 :(得分:3)

无论你做什么。这段代码肯定会做你想要的东西!!

selsound_button.setOnClickListener(new OnClickListener()
{   
    public void onClick(View arg0)
    {
        Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
        Uri currenturi = ContentUris.withAppendedId(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 1l);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select ringtone for notifications:");
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_NOTIFICATION);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, currenturi);
        startActivityForResult( intent, 999);   
    }
});


RingtoneManager.setActualDefaultRingtoneUri(
myActivity, RingtoneManager.TYPE_RINGTONE, currenturi);  

您必须在清单文件中添加

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

uri不是rigntone名称的名称

Ringtone ringtone = RingtoneManager.getRingtone(this, uri); 
String title = ringtone.getTitle(this);

使用它对你来说很方便

答案 1 :(得分:0)

我会为用户提供首选项屏幕。 Rintones有一个特殊条目:<RingtonePreference />

<PreferenceScreen>
    <RingtonePreference
         android:title="Current Ringtone"
         android:key="ring" />
</PreferenceScreen>

使用该属性后,rintone将使用键ring保存在您的偏好设置中。

如果您不想使用首选项屏幕,则可以使用上述ui内部使用的意图:

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
startActivityForResult(intent, 4711);

使用结果代码启动该意图,并在onActivityResult中检查它,如下所示:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(requestCode == 4711) {
        if(data != null) {
            Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
            if(uri != null) {
                yourTextView.setText(uri);
            }
        }
    }
}

答案 2 :(得分:0)

试试这个:

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