我正在编写一个应用程序,当用户打开应用程序时,该应用程序具有暂时覆盖系统默认铃声和其他自定义铃声的功能,并在用户关闭时恢复为默认铃声。同时,用户可以在“设置”或其他应用程序中更改默认铃声,但只要我的应用程序正在运行,在用户关闭我的应用程序之前,这些更改无效。
我不能这样做
RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE, toneUri);
因为它意味着更改铃声本身,而不是覆盖它与另一个铃声。当然,我可以在打开应用程序时记住系统铃声,并在关闭时将其更改回铃声。但是,使用此方法,当我的应用程序关闭时,用户在更改系统铃声时所做的任何更改(当我的应用程序仍在运行时)将被丢弃,因为它将自动恢复为之前记住的铃声。将使我的自定义铃声不再生效
那么怎么办呢?
答案 0 :(得分:1)
我认为你已经走上了正确的轨道,记住了#34;老"铃声并在您的应用完成后恢复它。如上所述,问题是当用户在您的应用运行时更改其铃声时会发生的情况。
您可以采取几种方法来避免这种情况:
在最后一种情况下,您应该能够根据应用的功能处理更改。
您的更新提出了另一个问题:您确定用户希望您强行覆盖他们的铃声,即使他们更改了吗?如果你是,那很好,但这是你需要记住的事情。