我可以将我的应用注册为闹钟处理程序吗?

时间:2016-09-17 18:02:05

标签: android android-intent android-alarms

我正在使用流媒体广播应用,它可以播放一组预定义的电台。我想将它与现有的闹钟应用程序集成,而无需在应用程序本身中构建任何警报功能。

当闹钟响起时,收音机应开始播放。理想情况下,它应该预先播放用户选择的电台,但我会选择存储最后一个用过的电台并播放它。

我查看了Android上提供的common intents,但似乎并不合适。特别是:

  • INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH需要一个自由格式的搜索查询,这看起来不合适。
  • ACTION_VIEW需要一个网址。我可以使用广播电台的流URL,或者可能想出my-radio-app://station-id之类的自定义URL方案,但是如何说服通用闹钟应用向用户显示可用电台列表?

为了从另一端接近它,我查看了现有的闹钟应用程序。股票应用程序不进行任何集成。我使用的Sleep as Android应用程序可以触发Spotify,但我认为这是一个定制的集成。它似乎也可以读取并列出SD卡中的所有音乐曲目。

我想做不可能的事吗?这些意图是不是标准化了?

1 个答案:

答案 0 :(得分:1)

  

我想将其与现有的闹钟应用程序集成,而无需在应用程序本身中构建任何警报功能。

如果许多闹钟应用支持这一点,我会感到非常惊讶。

  

当闹钟响起时,收音机应该开始播放

这只是所需集成的一部分。值得注意的是,当用户暂停或停止闹钟时,收音机应该停止播放。

  

如何说服通用闹钟应用向用户显示可用电台列表?

某些闹钟应用可能允许用户选择一段音频作为闹钟“铃声”进行播放。这些应用程序可以通过以下几种方式获得该音频。你可以加入的那个是ACTION_GET_CONTENT。对于某些适当的<intent-filter> MIME类型,您可以拥有为ACTION_GET_CONTENT实施audio的活动,其中您的活动会向音频返回Uri。但是,Uri必须指向可由MediaPlayer播放的流,因为这就是闹钟应用最有可能播放该音频的方式(直接或通过{{1}在setSound()上。这是你最接近支持的东西,在这种情况下,你没有播放音频,但最多将一些流转码为Notification.Builder可以播放的内容。

我的猜测是,这不是你的想法。

  

这些意图是不是标准化了?

我不太确定在这种情况下你期望MediaPlayer做什么。例如,Intent不能用于启动活动来播放音频,因为您的活动通常无法显示(用户屏幕被锁定),当用户暂停或停止时,闹钟应用程序无法停止音乐报警。

Android中没有标准机制让一个应用程序要求其他应用启动和停止播放音频。欢迎您为此制定一个约定并说服闹钟开发人员实现它。

相关问题