Ich verwende einen Broadcast-Empfänger, um Headset-Taste klicken zu erkennen. Unten ist der Code für Broadcast-Empfänger.Android - Broadcast-Empfänger zum Erkennen der Headset-Taste Klick funktioniert nicht API 23 (Marshmallow)
public class HeadSetButtonStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_MEDIA_BUTTON)) {
KeyEvent event = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event != null) {
int action = event.getAction();
if (action == KeyEvent.ACTION_DOWN) {
Toast.makeText(context, "BUTTON PRESSED!", Toast.LENGTH_SHORT).show();
EventBus.getDefault().post(new HeadSetButtonEvent("1"));
}
}
}
}
}
Es funktioniert gut auf API 22 (Lollipop), aber es auf API 23 funktioniert nicht (Eibisch-Geräte). Ich habe versucht, auf Stackoverflow zu schauen, habe aber nichts gefunden.
Was ist Ihre Ziel-API @Vicky? – Lampard
@CrazyAndroid API 23. – Vicky
@CrazyAndroid Nein, aber ich registriere den Broadcast-Empfänger in der Aktivität nicht in der Manifest-Datei. – Vicky