2011-01-31 55 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