我想在我的应用程序中编程一个音乐控制器,这样我就可以从另一个内置的音乐应用程序中播放/暂停、nextSong和previousSong我的播放列表。我已经看到了使用广播发送消息给所有音乐播放器的解决方案,例如,开始播放音乐。问题是,音乐开始在我安装的三个不同的音乐播放器上播放。有没有人知道用什么来代替sendBroadcast,这样消息只会被发送到我想要的应用程序?
这是我在网上找到的解决方案。它使用sendBroadcast()函数。这条消息被广播到我不想要的每一个音乐播放器。我希望它只发送到一个特定的应用程序
long eventTime = SystemClock.uptimeMillis();
/*NEXT*/
Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
KeyEvent downEvent = new KeyEvent(eventTime, eventTime,
KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PREVIOUS, 0);
downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent);
sendBroadcast(downIntent, null);
Intent upIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
KeyEvent upEvent = new KeyEvent(eventTime, eventTime,
KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PREVIOUS, 0);
upIntent.putExtra(Intent.EXTRA_KEY_EVENT, upEvent);
sendBroadcast(upIntent, null);发布于 2019-07-15 21:04:44
首先,在menifest文件中声明接收者:
<receiver android:name=".MyBroadcastReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.pkg.perform.Ruby" />
</intent-filter>
在我的例子中,我是这样使用的:
final Intent intent=new Intent();
intent.setAction("com.pkg.perform.Ruby");
intent.putExtra("KeyName","code1id");
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
intent.setComponent(
new ComponentName("com.pkg.AppB","com.pkg.AppB.MyBroadcastReceiver"));
sendBroadcast(intent);https://stackoverflow.com/questions/57039948
复制相似问题