2011-01-31 56 views
0

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

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

我没有从这里得到任何错误,但我得到了一个似乎相关的警告。

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

在我看来,我只是没有正确引用文件。我可以在String中获得声音的路径,当然可以将它们定义为File,但我必须在某处丢失某些东西。

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

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

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

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

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 

回答

0

从你的问题我不确定你用什么来改变铃声。您可以使用

android.media.RingtoneManager 

一些有用的链接:

How to set ringtone in Android from my activity?

setting audio file as Ringtone

+0

我已经编辑我的主要职务与我的错误日志的要点时,我尝试使用从码这些例子。无可否认,我只是将代码打了一巴掌,并改变了我需要的内容,但之前我花了相当多的时间尝试使用该代码来处理它,并且它给了我类似的结果(如果不是相同的话)。无论哪种方式感谢你的联系,我会继续研究他们,看看我不能做的事情。 – Raphy 2011-02-01 18:02:30