Android+イヤホン挿抜とイヤホンボタン検出
1.イヤホン挿抜
まずoncreateにreceiverを登録し、
次に、ブロードキャスト受信部:
2.ヘッドホンキー検出
イヤホンのボタンを検出することができて、ネット上である人は以下の方法でイヤホンのボタンを検出することができると言って、しかもN数編を転載しました.やってみたらダメだった...成功した友达がいることを望んで、见た后に私に伝言を残して话して、交流はとても重要です...
上記の問題は、放送受信に優先度の概念があることが分かったが、hookはシステムの持参したプレーヤーに切り取られ、使い終わった後に破棄されたため、私のアプリケーションはhookボタンを傍受できず、放送受信の優先度を上げればシステムは1000私の1000+1である. ok!
まずoncreateにreceiverを登録し、
registerReceiver(headSetReceiver, new IntentFilter(Intent.ACTION_HEADSET_PLUG));
次に、ブロードキャスト受信部:
private final BroadcastReceiver headSetReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG,"into headsetreceiver!");
String action = intent.getAction();
if (action.equals(Intent.ACTION_HEADSET_PLUG)) {
//headphone plugged
if(intent.getIntExtra("state", 0) == 1){
//do something
Log.d(TAG,"this is headphone plugged");
headsetState.setText(" : ");
//headphone unplugged
}else{
//do something
Log.d(TAG,"this is headphone unplugged");
headsetState.setText(" : ");
}
}
}
};
2.ヘッドホンキー検出
/* */
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_HEADSETHOOK:
//DisplayToast(" : ");
headsetState.setText(" : , ");
break;
}
return true;
}
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_HEADSETHOOK:
//DisplayToast(" : ");
headsetState.setText(" : , ");
break;
}
return true;
}
イヤホンのボタンを検出することができて、ネット上である人は以下の方法でイヤホンのボタンを検出することができると言って、しかもN数編を転載しました.やってみたらダメだった...成功した友达がいることを望んで、见た后に私に伝言を残して话して、交流はとても重要です...
filter Intent.ACTION_MEDIA_BUTTON
onReceive
final KeyEvent event = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event != null && event.getAction() == KeyEvent.ACTION_DOWN){
//do something
}
上記の問題は、放送受信に優先度の概念があることが分かったが、hookはシステムの持参したプレーヤーに切り取られ、使い終わった後に破棄されたため、私のアプリケーションはhookボタンを傍受できず、放送受信の優先度を上げればシステムは1000私の1000+1である. ok!