Android onActivityResult在选择铃声时为null

时间:2019-01-18 21:56:33

标签: android onactivityresult ringtone ringtonemanager

好的,所以在我的应用程序上,我为用户播放了一些声音,最近,我允许现在选择声音,而不仅仅是播放默认声音。因此,我使用铃声进行此操作,并存储URI并在需要时在mediaplayer上播放。效果很好。除非他们安装了诸如zedge或铃声之类的其他应用程序,否则即使他们选择媒体存储作为来源(存储默认电话铃声的源)并选择普通铃声,除非它们卸载zedge。有没有办法只打开默认的铃声选择器(而不是给他们打开zedge的选项)?还是我还需要做一些其他事情来解决这些其他应用?

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALL);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));

@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent intent)
{
    super.onActivityResult(requestCode, resultCode, intent);

    Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);

    if (uri != null){
       chosenRingtone = uri.toString();
    }
}

0 个答案:

没有答案
相关问题