Ich möchte die Vibrationseinstellung des Geräts ausschalten, wenn ein Anruf eingeht. Ich habe einen BroadcastReceiver für diese Funktion implementiert, der die Aktion beim Empfang von PHONE_STATE
broadcast ausführt. Das Problem ist, dass ich die Vibrationen überhaupt nicht abschalten kann. Ich habe folgendes versucht:
oder
%Vor%Der erste Ansatz scheint mir ideal zu sein. Es funktioniert sogar, um die Vibrationen einzuschalten, wenn ein Anruf empfangen wird. Aber ich kann sie in diesem Szenario nicht ausschalten.
Hat jemand das versucht?
Bearbeiten: Ich habe den Android Phone-App-Code überprüft. Der folgende Code ist in Ringer.java : Ein Thread wird anfänglich von der Telefon-App gestartet, die das Telefon vibriert. Wenn ich die Vibrationseinstellung auf "Aus" ändere, wird diese Prüfung übersprungen, aber der bereits gestartete Thread läuft weiter. Dies erklärt auch, wie Vibrationen bei eingehenden Anrufen eingeschaltet werden können. In diesem Fall wird der Thread zunächst nicht ausgeführt. Dann wird es gestartet, wenn ich die Vibrationseinstellung einschalte. Ich glaube nicht, dass es eine Lösung für das Problem gibt, ohne die Phone App zu ändern.
das:
%Vor%wird dir nicht helfen, da es die neue Instanz des Vibrators löscht.
Ich kann mir vorstellen, dass es zu spät ist, die Vibration des Geräts abzuschalten, wenn der Anruf bereits eingeht, da die Vibration bereits aktiv ist. Sie müssen das also tun, bevor der Anruf eingeht.