Android广播意图进行音频播放?

时间:2013-08-11 23:10:06

标签: android

我正在尝试构建一个Android应用程序,该应用程序使用广播接收器来检测音乐播放何时开始,然后提供手势控制以触发发送跳过轨道意图。

首先,我只想将接收器设置为在音频播放开始时触发通知,以便我可以检查此概念是否有效。我在清单文件中声明了一个服务和一个接收器,并且我创建了一个服务类(希望通过onCreate()创建一个通知。

我已经抓了一大堆文档但似乎无法找到正确的意图来接收我的接收器。当然存在某种东西吗?

问候。

2 个答案:

答案 0 :(得分:2)

事实证明Android 3.1及更高版本中有一个新的安全功能,广播接收器在用户至少手动打开应用程序一次之前不会注册。由于我试图构建一个只能打开UI的服务应用程序,这阻止了我的所有意图侦听器尝试工作。

我已修改为有一个闪屏活动,现在一切都按照我的希望工作。我现在正在努力整理一个特定于玩家的意图列表,但对于那些试图构建类似东西的人来说,com.android.music.playstatechanged似乎是最好的开始。当音乐开始,暂停或恢复时,默认播放器(Google Play音乐)触发此播放,并使用包含布尔“播放”属性的额外数据捆绑自身,以区分播放和暂停状态。

基本上,这是我现在使用的核心接收器。玩得开心!

public class MainReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

        // Start the service when music plays, stop the service when music ends.
        if(intent.hasExtra("playing")) {
            if(intent.getBooleanExtra("playing", false)) {
                Intent service = new Intent(context, MainService.class);
                context.startService(service);
            } else {
                Intent service = new Intent(context, MainService.class);
                context.stopService(service);
            }
        }
    }
}

答案 1 :(得分:-1)

  

当然存在某种东西?

有成千上万的音乐播放器。没有人有义务播放任何内容,更不用说有关曲目的信息了。没有人有义务允许你通过任何方式“跳过轨道”。

欢迎您搜索特定的音乐播放器,为这类事物提供文档化和支持的API。