2014-09-30 4 views
1

Я пишу приложение, которое имеет функцию , временно переопределяет рингтон системы по умолчанию с другим настраиваемым рингтоном, когда пользователь включает приложение и восстанавливает мелодию звонка по умолчанию, когда пользователь отключает ее. Между тем, пользователь может изменить мелодию звонка по умолчанию в настройках или в другом приложении, но пока мое приложение работает, эти изменения не действуют, пока пользователь не отключит приложение.Как временно изменить стандартную мелодию звонка по умолчанию?

Я не могу это сделать, как этот

RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE, toneUri); 

Потому что это означает изменения сама мелодия, не перекрывая его с другим рингтон. Конечно, я могу вспомнить системный рингтон при включении приложения и изменить его на этот рингтон, когда он выключен. Однако, используя этот подход, любые изменения, сделанные пользователем (пока мое приложение все еще работает) при изменении звукового сигнала системы будут удалены, когда мое приложение отключено, так как оно автоматически вернется к ранее сохраненной мелодии звонка. сделает мою обычную mp3 ринг непосредственно неактивной.

Так иначе, как это можно сделать?

ответ

1

Я думаю, что вы на правильном пути, вспомнив «старый» рингтон и восстановив его, когда ваше приложение закончено. Проблема, как указано, - это то, что происходит, когда пользователь меняет свой рингтон во время работы вашего приложения.

Есть несколько подходов, вы могли бы предпринять, чтобы избежать этого:

  • Прислушайтесь к системе вещания для мелодии звонка быть изменен и реагировать соответствующим образом путем повторного применения мелодии вызова. Я посмотрел на это - к сожалению, такой трансляции не существует, так что это спорный вопрос.
  • Используйте будильник для периодической проверки мелодии звонка и проверьте, не установлен ли он, если нет, они изменили его, чтобы вы могли его изменить.
  • Неприменимо для обновленного вопроса: Как раз перед восстановлением мелодии звоните, проверьте текущую настройку - если она отличается от той, которую вы установили, то вы знаете, что она была изменена, пока ваше приложение было открыто.

В последнем случае вы должны иметь возможность иметь дело с изменением в соответствии с функциональностью вашего приложения.

Ваше обновление вызывает еще один вопрос: уверены ли вы, что пользователь хочет, чтобы вы принудительно переопределили их мелодию звонка, даже когда они меняют его? Если да, тогда все в порядке, но это то, что вам нужно помнить.

+0

Извините, я ошибся в проблеме: это не то, что мое приложение не может сохранить новый рингтон, но проблема в том, что моя настраиваемая мелодия сразу не действует. См. Мой отредактированный вопрос. –