Android onActivityResult null при выборе мелодии звонка - PullRequest
0 голосов
/ 19 января 2019

Хорошо, так что в моем приложении я играю несколько звуков для своих пользователей, так как в последнее время я позволяю теперь выбирать звук вместо того, чтобы просто воспроизводить звук по умолчанию.Поэтому я делаю это, используя рингтоны, сохраняя 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();
    }
}
...