これは、ヘッドセットが接続されているか切断されているかを検出する方法です。しかし、私はいつクレジットを見つける必要があります
「カードリーダー」はAndroid端末に接続。それも、ヘッドセットが差し込まれているのと同じポートを使用するためです。したがって、接続されているデバイスを区別する方法は、「カードリーダー」または「ヘッドセット」です。私はそれを具体的に見つけるためにそれを検索しました。しかし、「カードリーダー」がプラグイン/アウトされていることを見つけるための解決策はありません。
private static final String TAG = "plugstatus";
private PlugListener myReceiver;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myReceiver = new PlugListener();
}
@Override public void onResume() {
IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
registerReceiver(myReceiver, filter);
super.onResume();
}
private class PlugListener extends BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_HEADSET_PLUG)) {
int state = intent.getIntExtra("state", -1);
switch (state) {
case 0:
Log.d(TAG, "Headset unplugged");
break;
case 1:
Log.d(TAG, "Headset plugged");
break;
default:
Log.d(TAG, "Not able to detect plug state");
}
}
}
}
@Override public void onPause() {
unregisterReceiver(myReceiver);
super.onPause();
}