Ich möchte in der Lage sein, ein Ereignis auszulösen, wenn ein Benutzer ein USB-Gerät verbindet oder trennt. Ich habe folgenden Code:Detect USB STATE CHANGE android java
public static boolean isConnected(Context context) {
Intent intent = context.registerReceiver(null, new IntentFilter("android.hardware.usb.action.USB_STATE"));
return intent.getExtras().getBoolean("connected");
}
Das obige stammt aus einer anderen StackOverflow Frage.
Wie kann ich über das Problem, dem ich gegenüberstehe, gehen? Ich denke nicht, dass es praktisch wäre, jede x Sekunde zu überprüfen, wenn sich der Zustand geändert hat. Also habe ich online nach einem Ereignis-Listener über USB_CONNECTION gesucht, aber ich kann keine finden. Eigentlich habe ich ein paar gefunden, aber sie waren verwirrend und ziemlich alt. (Ein oder zwei Jahre vor.)
TRIED CODE
while(notFinished) {
if (!isConnected(this)) {
pause();
} else if (!mediaPlayer.isPlaying() && isConnected(this)) {
play();
} else {
Log.e("[ERROR]: ", "An error has occured at startSong!");
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
^^^ Offensichtlich nicht effizient, aber es funktioniert (ein wenig). Deshalb bin ich hierher gekommen, um zu wissen, ob es einen Listener für USB_CONNECTION_STATUS gibt. Ich denke, das wäre viel schneller.