2016-09-17 106 views
0

我正在製作一個流式廣播應用程序,它可以播放預定義的一組電臺之一。我想將其與現有的鬧鐘應用程序集成,而無需在應用程序本身中構建任何鬧鐘功能。我可以將我的應用程序註冊爲鬧鐘處理程序嗎?

當鬧鈴響起時,收音機應該開始播放。理想情況下,它應該事先播放由用戶選擇的電臺,但我會考慮存儲最後使用的電臺並播放。

我查看了Android上的common intents,但似乎沒有什麼合適的。特別是:

  • INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH需要自由形式的搜索查詢,這似乎不合適。
  • ACTION_VIEW需要一個URL。我可以使用廣播電臺的流媒體網址,或者可能想出一個像my-radio-app://station-id這樣的自定義URL方案,但是如何說服通用鬧鐘應用程序向用戶顯示可用電臺列表?

爲了從另一端接近它,我查看了現有的鬧鐘應用程序。股票應用程序不做任何集成。我使用的Sleep as Android應用程序可以觸發Spotify,但我認爲這是一種定製的集成。它似乎也讀取並列出SD卡上的所有音樂曲目。

我想要做不可能的事情嗎?這些意圖是不是標準化?

回答

1

我想這與現有的鬧鐘應用程序集成,無需建立任何報警功能集成到應用程序本身。

如果很多鬧鐘應用程序支持,我會感到很驚訝。

當警報響起時,無線電開始播放

那只是一塊所需的集成。值得注意的是,當用戶打盹或停止鬧鈴時,收音機應停止播放。

我該如何說服一般鬧鐘應用程序向用戶顯示可用電臺列表?

某些鬧鐘應用程序可能允許用戶選擇一段音頻作爲鬧鈴「鈴聲」播放。這些應用程序可以通過幾種方式之一獲取該音頻。你可以掛鉤的那個將是ACTION_GET_CONTENT。您可以執行<intent-filter>ACTION_GET_CONTENT的活動,對於某些適當的audio MIME類型,您的活動返回Uri到音頻。然而,Uri然後必須指向一個可以由MediaPlayer播放的流,因爲鬧鐘應用最有可能播放該音頻(直接或通過Notification.Builder上的setSound())。這是最接近你將獲得支持的東西,在這種情況下,你不是在播放音頻,而是最多可以將一些數據流轉碼爲MediaPlayer可以播放的東西。

我的猜測是,這不是你想到的。

這些意圖是不是標準化?

我不是很確定你期望Intent在這種情況下做什麼。例如,Intent不能用於開始播放音頻的活動,因爲您的活動通常無法顯示(用戶屏幕已鎖定),並且鬧鐘應用無法在用戶延後或停止鬧鐘時停止音樂。

Android中沒有一種應用程序要求其他應用程序啓動和停止播放音頻的標準機制。歡迎您爲此發明一個約定,並說服鬧鐘開發人員實施它。

+0

的確,我需要比剛開始玩的時候多集成一點,但是最初決定保持簡單......顯然這已經夠用了;)謝謝你確認我的疑惑。 'ACTION_GET_CONTENT'確實可以用於選擇特定的流,但當然需要兩個應用程序的合作。可憐。我希望即使設備被鎖定,也可以用某種方式啓動「Intent」。但正如你所說,它似乎沒有標準化,我不想嘗試,因爲這只是一個業餘愛好項目。 – Thomas

相關問題