在Android应用程序中设置铃声

时间:2011-01-31 23:06:22

标签: android settings uri provider ringtone

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

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

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

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

在我看来,我只是没有正确引用该文件。我可以在String中获取声音的路径,当然也可以将它们定义为文件,但我必须在某处遗漏某些内容。

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

编辑::好吧,当你“更改铃声”时,似乎只会显示错误。因此,如果我再次设置与铃声相同的声音,它将不会显示,但如果我要设置不同的声音,它会。对我而言,这仍然意味着它正在看我正在做的一切,但我没有正确地参考声音,因此它不知道该放在那里。

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

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

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

1 个答案:

答案 0 :(得分:0)

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

android.media.RingtoneManager

几个有用的链接:

How to set ringtone in Android from my activity?

setting audio file as Ringtone