首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用RingtoneManager.ACTION_RINGTONE_PICKER设置铃声?

如何用RingtoneManager.ACTION_RINGTONE_PICKER设置铃声?
EN

Stack Overflow用户
提问于 2011-10-06 08:04:44
回答 4查看 35.9K关注 0票数 20

我试图在这里找到解决方案,但只有自己的/选定的文件的解决方案,而不是调用selected时的代码解决方案。当用户按下按钮时,我使用以下代码:

代码语言:javascript
复制
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
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);
ActivityCurrent.this.startActivityForResult(intent,999);

这个显示铃声选择器,用户可以选择铃声想要什么,但是我错过了两件事:-它打开时不会显示当前的铃声,它在点击“确定”时不会保存铃声。

我仍然找不到办法,如何打开RINGTONE_PICKER已选定的当前铃声。有什么想法吗?

代码语言:javascript
复制
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
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);
ActivityCurrent.this.startActivityForResult(intent,999);
EN

回答 4

Stack Overflow用户

发布于 2011-10-06 08:18:02

您必须实现onActivityResult()来接收用户选择的结果,然后保存它。

代码语言:javascript
复制
if (resultCode == RESULT_OK) {
    Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
    if (uri != null) {
    String ringTonePath = uri.toString();
}

这里有一个例子:http://www.ceveni.com/2009/07/ringtone-picker-in-android-with-intent.html

编辑:更新

代码语言:javascript
复制
RingtoneManager.setActualDefaultRingtoneUri(
    myActivity,
    RingtoneManager.TYPE_RINGTONE,
    uri);

你必须称其为:)

票数 21
EN

Stack Overflow用户

发布于 2012-08-15 06:44:35

代码语言:javascript
复制
Intent intent=new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtone);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, ringtone);
startActivityForResult(intent , 1);

“铃声”是我在onActivityResult()中保存所选音调的uri。

代码语言:javascript
复制
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        switch (requestCode) {
        case 1:
            ringtone = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);

            // Toast.makeText(getBaseContext(),RingtoneManager.URI_COLUMN_INDEX,
            // Toast.LENGTH_SHORT).show();
            break;

        default:
            break;
        }
    }
}

希望它能帮到你。击中回答如果是的话。

票数 13
EN

Stack Overflow用户

发布于 2013-06-13 14:31:59

代码很完美,适合我。但是您忘了提到required..here的权限。试试这个code..hope吧,它很有帮助

代码语言:javascript
复制
<uses-permission android:name="android.permission.WRITE_SETTINGS" ></uses-permission>
  <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" ></uses-permission>
  <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" ></uses-permission>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7671637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档