AudioManager和系统音量变化接收器

时间:2012-07-07 07:58:56

标签: android

我已按照this page上的说明操作,直到“为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消息,我的活动必须播放任何媒体内容。我马上要测试一下。

P.S。如你所见,我甚至添加了一些不必要的代码 - 不要注意requestAudioFocus。

感谢您的任何建议。

0 个答案:

没有答案