【问题标题】:How do I add my app's notification sound to the notification sound list?如何将我的应用程序的通知声音添加到通知声音列表?
【发布时间】:2015-02-23 18:42:35
【问题描述】:

我希望用户能够为我的应用选择通知声音,因此我使用以下代码:

Intent ringtoneIntent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
ringtoneIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false);
ringtoneIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
ringtoneIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);
ringtoneIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Choose");
ringtoneIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, (Uri) null);
fragment.startActivityForResult(ringtoneIntent, REQUEST_RINGTONE);

很遗憾,我的应用自己的通知声音不在列表中。 Google Hangouts、Calendar 和 Facebook 在列表中。我假设这些程序已经做了一些事情来向 android 注册,但我找不到任何关于如何做到这一点的文档。

【问题讨论】:

    标签: android android-intent notifications ringtone


    【解决方案1】:

    首先将您的文件复制到 rigntones 文件夹(参见 Environment.DIRECTORY_RINGTONES)

    然后注册声音:

    ContentValues values = new ContentValues();
    values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath());
    values.put(MediaStore.MediaColumns.TITLE, nameOfSound);
    values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
    values.put(MediaStore.Audio.Media.ARTIST, yourAppName);
    values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
    values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
    values.put(MediaStore.Audio.Media.IS_ALARM, true);
    values.put(MediaStore.Audio.Media.IS_MUSIC, false);
    
    Uri uri = MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath());
    getContentResolver().insert(uri, values);
    

    【讨论】:

      【解决方案2】:

      一个非常简单直接的解决方案是将您的声音文件复制到Environment.DIRECTORY_NOTIFICATIONSEnvironment.DIRECTORY_RINGTONES

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多