나는 2 일 동안이 문제를 해결하려고 노력해 왔으며 올바른 대답을 찾지 못하는 것 같습니다.bluethooth 헤드셋의 버튼 누름을 감지하는 방법
http://android.amberfog.com/?p=415
Android - registering a headset button click with BroadcastReceiver
http://code.google.com/p/android/issues/detail?id=4963
을 아무리 버튼을 누를 때 나는 무엇을하려고 : 나는 나를 도와 보이지 않는다 인터넷에서 응답에 대한 검색되었으며이를 발견하지만 그들은 그나마 내 머리에 내 애플 리케이션에 잡히지 않고 뭔가를 할 대신 볼륨 레벨 컨트롤을 표시하는 전화를 설정합니다. 누군가가 나에게 몇 가지 팁을 줄 수 있다면 나는 매우 감사 할 것이다. 여기에 코드의 일부는 다음과 같습니다
public class MediaButtonIntentReceiver extends BroadcastReceiver {
public MediaButtonIntentReceiver() {
super();
}
@Override
public void onReceive(Context context, Intent intent) {
Log.i("test1'", "test2");
String intentAction = intent.getAction();
if (!Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) {
return;
}
KeyEvent event = (KeyEvent) intent
.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event == null) {
Log.i("test3'", "test4");
return;
}
int action = event.getAction();
if (action == KeyEvent.ACTION_DOWN) {
// do something
Log.i("test5'", "test6");
}
abortBroadcast();
}
}
public class MainActivity extends Activity {
private static final String TAG = "BTAudioActivity";
private MediaPlayer mPlayer = null;
private AudioManager amanager = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
amanager = (AudioManager) getSystemService(AUDIO_SERVICE);
amanager.setBluetoothScoOn(true);
amanager.startBluetoothSco();
amanager.setMode(2);
mPlayer = new MediaPlayer();
try {
mPlayer.setDataSource(new FileInputStream("/sdcard/sample.wav")
.getFD());
mPlayer.prepare();
mPlayer.setVolume(8,8);
mPlayer.start();
} catch (Exception e) {
Log.e(TAG, e.toString());
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
MediaButtonIntentReceiver mMediaButtonReceiver = new MediaButtonIntentReceiver();
IntentFilter mediaFilter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
mediaFilter.setPriority(1000);
registerReceiver(mMediaButtonReceiver, mediaFilter);
super.onResume();
}
@Override
public void onDestroy() {
mPlayer.stop();
amanager.setMode(2);
amanager.setBluetoothScoOn(false);
super.onDestroy();
}
}