我正在尝试构建一个 Android 应用程序,它使用广播接收器来检测音乐播放何时开始,然后提供手势控制来触发发送跳过曲目意图。
首先,我只想将接收器设置为在音频播放开始时触发通知,以便我可以检查这个概念是否有效。我已经在清单文件中声明了一个服务和一个接收器,并且创建了一个服务类(希望)通过 onCreate() 创建通知。
我已经爬行了大量的文档,但似乎无法找到用我的接收器监听的正确意图。肯定有这样的东西存在吗?
Regards.
事实证明,Android 3.1 及更高版本中有一个新的安全功能,在用户手动打开应用程序至少一次之前,广播接收器不会注册。由于我试图构建一个没有 UI 可打开的纯服务应用程序,因此这阻止了我所有意图侦听器尝试的工作。
我已经修改为具有闪屏活动,现在一切都按我希望的方式工作。我现在正在整理一份特定于玩家的意图列表,但对于那些尝试构建类似内容的人来说,com.android.music.playstatechanged 似乎是最好的开始。当音乐开始、暂停或恢复时,默认播放器 (Google Play Music) 会触发此功能,并将其与额外数据捆绑在一起,其中包括用于区分播放和暂停状态的布尔“播放”属性。
本质上,这是我现在使用的核心接收器。玩得开心!
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);
}
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)