gpt4 book ai didi

Android 默认音调选择器问题(带有通知和警报的默认音调)

转载 作者:太空狗 更新时间:2023-10-29 15:41:45 26 4
gpt4 key购买 nike

我不知道这是否是一个简单解决方案的愚蠢问题。我有一个显示默认铃声选项(用于通知)的铃声选择器。像这样:

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
startActivityForResult(intent, RingtoneManager.TYPE_NOTIFICATION);

然后我得到了结果:

protected void onActivityResult(int requestCode, int resultCode, Intent mRingtone) {
switch (requestCode) {
case RingtoneManager.TYPE_NOTIFICATION:
if (resultCode == RESULT_OK) {
notifToneUri = mRingtone.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
Ringtone ringtone = RingtoneManager.getRingtone(this, uri);
Log.d(TAG,"Uri = " + notifToneUri.toString() + " and title = " + ringtone.getTitle(this));
}
break;
}
}

奇怪的事情发生了,如果我选择“默认通知音”选项,uri 应该是:*content://settings/system/notification_sound* 但 uri 是 content ://settings/system/ringtone(这是铃声的默认值,不是通知)。默认警报音也是如此。

我是这样解决的:

if (notifToneUri.equals(Settings.System.DEFAULT_RINGTONE_URI)){
notifToneUri = Settings.System.DEFAULT_NOTIFICATION_URI;
}

好的,这行得通......但我想知道是否有更好的方法或者我做错了什么。

提前谢谢你。

最佳答案

我认为您没有正确检索 Uri。下面是一个示例:

启动RingtoneManager

final Intent ringtone = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
ringtone.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);
ringtone.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
ringtone.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI,
RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
startActivityForResult(ringtone, 0);

Activity.onActivityResult中获取Uri和标题

if (requestCode == 0 && resultCode == RESULT_OK) {
final Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
final Ringtone ringtone = RingtoneManager.getRingtone(this, uri);
// Get your title here `ringtone.getTitle(this)`
}

可以看到here in the source for Ringtone , 只有当 Uri 的权限等于 Settings.AUTHORITY 而从不 MediaStore.AUTHORITY 时才添加前缀。

关于Android 默认音调选择器问题(带有通知和警报的默认音调),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22077795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com