「Android 2.2 に制限せずに Android 2.2 用のコードを準備する」まで、このページの指示に従いました。2.3 バージョンに対してビルドしている場合でも、この時点では機能するはずですが、そうではありません。マニフェストに受信者を登録しました:
<receiver android:name="RemoteControlReceiver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
RemoteControlReceiver 宣言用のクラスを作成しました:
public class RemoteControlReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "onReceive", Toast.LENGTH_SHORT).show();
}
}
そして最後に、開始アクティビティでそれをブーストラップしました。
private AudioManager _audioManager;
private ComponentName _componentName;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
_audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
_componentName = new ComponentName(getPackageName(), RemoteControlReceiver.class.getName());
}
@Override
protected void onResume() {
super.onResume();
_audioManager.registerMediaButtonEventReceiver(_componentName);
_audioManager.requestAudioFocus(new OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {
Toast.makeText(getApplicationContext(), "onFocusChanged", Toast.LENGTH_SHORT).show();
}
}, AudioManager.STREAM_MUSIC, 0);
}
ここで何が欠けているか指摘してもらえますか? 私は、thodse メッセージを受信するために、私のアクティビティでメディアを再生する必要があると想定しています。すぐにテストします。
PS ご覧のとおり、不必要なコードをいくつか追加しました。requestAudioFocus には注意を払わないでください。
提案をありがとう。