0

我希望能够从我的 Android 应用程序中设置系统铃声。我面临一个稍微有趣的问题,因为我从来没有在我的代码中直接引用声音,而是使用通过整数引用它们的设置,所以我在网上找到的代码并不完全适用于我。

我不确定我设置铃声的代码是否正确。它确实取代了我的铃声,但它永远不会用我要求它的声音取代它。当我使用“Uri.parse”并为其提供找到正确文件的路径时,它会用任何内容替换铃声。现在,使用“Uri.fromFile”,并通过文件引用声音,它将其替换为典型的电话声音,我认为这是某种默认设置。

我没有从中得到任何错误,但我确实收到了一个似乎相关的警告。

dataChanged but no participant pkg='com.android.providers.settings' uid=10096

在我看来,我只是没有正确引用该文件。我可以在字符串中获取声音的路径,当然也可以将它们定义为文件,但我一定在某处遗漏了一些东西。

任何想法表示赞赏,谢谢。

编辑 :: 好吧,似乎只有当您“更改铃声”时才会出现错误。因此,如果我再次设置与铃声相同的声音,它不会出现,但如果我要设置不同的声音,它会出现。对我来说,这仍然意味着它可以看到我正在做的一切,但我没有正确参考声音,所以它不知道该放什么。

编辑 :: 这些是我尝试使用在其他设置铃声示例中发布的相同设置时遇到的主要错误。

这些是我第一次尝试将其设置为铃声时:

02-01 11:51:20.709: ERROR/MediaPlayerService(1157): Couldn't open fd for content://settings/system/ringtone

02-01 11:51:20.709: ERROR/MediaPlayer(13807): Unable to to create media player

02-01 11:51:20.709: ERROR/RingtoneManager(13807): Failed to open ringtone content://settings/system/ringtone

02-01 11:51:20.709: ERROR/MediaPlayer(13807): Unable to to create media player

02-01 11:51:20.716: WARN/Ringtone(13807): Couldn't set the stream type

02-01 11:51:20.716: WARN/Ringtone(13807): java.io.IOException: setDataSourceFD failed.: status=0x80000000

这是如果我进入音量设置并更改铃声的音量:

02-01 11:51:23.568: ERROR/MediaPlayer(13807): Unable to to create media player

02-01 11:51:23.568: ERROR/Ringtone(13807): play() caught 

02-01 11:51:23.568: ERROR/Ringtone(13807): java.io.IOException: setDataSourceFD failed.: status=0x80000000
4

1 回答 1

0

根据您的问题,我不确定您使用什么来更改铃声。您可以使用

android.media.RingtoneManager

几个有用的链接:

如何通过我的活动在 Android 中设置铃声?

将音频文件设置为铃声

于 2011-02-01T16:02:20.807 回答