Android onActivityResult null при выборе мелодии звонка

Итак, в моем приложении я играю несколько звуков для своих пользователей, так как в последнее время я позволяю теперь выбирать звук вместо простого воспроизведения звука по умолчанию. Поэтому я делаю это, используя рингтоны, сохраняя URI и проигрывая его в медиаплеере, когда это необходимо. Это прекрасно работает. За исключением случаев, когда у них установлено другое приложение, такое как 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 ответов

Другие вопросы по тегам