首页 > 解决方案 > Android Q RingtonePicker 现在会导致应用崩溃?

问题描述

所以我一直在测试 Android Q 以确保我的应用程序不会有任何问题,我注意到如果你尝试启动它,铃声选择器现在会使应用程序崩溃。

错误信息如下。

android.content.ActivityNotFoundException: 没有找到处理 Intent { act=android.intent.action.RINGTONE_PICKER (has extras) }

我查找了此处找到的铃声偏好:https ://developer.android.com/reference/android/preference/RingtonePreference

现在它说 - 此类在 API 级别 Q 中已弃用。使用 AndroidX 首选项库在所有设备上实现一致的行为。有关使用 AndroidX 首选项库的更多信息,请参阅设置。

这只是一个问题,因为 android Q 处于测试阶段,还是我需要改变它。我有两个应用程序,我使用 ringtonePicker 来选择自定义警报声音或通知声音。有谁知道任何解决方法,还是我应该耐心等待 Q 进一步发展?

编辑:这是我的代码片段,也许它只是一个模拟器问题..

   Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALARM);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Alarm Sound");
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, chosenAlarm1);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
        startActivityForResult(intent, 5);

标签: androidandroid-10.0

解决方案


我在运行 Q Beta 2a 的 Pixel 上的废品项目中运行了您的代码片段,而不是转换为 Kotlin 并删除了依赖于您的Uri. 一个迷幻的铃声选择器出现了:

Q 铃声选择器

我的更改不应该影响Intent路由,所以我认为您的问题是模拟器问题。


推荐阅读