Okay, ich habe das Manifest von Skype dekompiliert, um herauszufinden, ob während eines Anrufs Dienste oder Broadcasts laufen. Es gibt nur wenige interne Broadcasts für eingehende Anrufe. Es gibt auch nur einen Empfänger und einen Dienst.
Ich habe alle laufenden Dienste mit meiner App überwacht, aber der SkypeMainService wird immer ausgeführt, auch wenn kein Anruf erfolgt.
Auch AudioMode
wird nicht durch skype geändert (aber gemäß den logcat-logs, die der dev wollte, aber sie tun es einfach nicht), also kann ich nicht einfach überprüfen, ob es MODE_IN_CALL
ist.
Haben Sie Vorschläge, wie Sie herausfinden können, ob Skype gerade aktiv ist und einen aktiven Anruf hat?
Danke!
/ edit: Ein kurzer Überblick über die Aktivitäten etc:
%Vor%Okay, ich hoffte wirklich, dass jemand eine nützliche Antwort geben würde. Allerdings habe ich in dem Kommentar Reubens Rat aufgenommen und diese Methode gemacht:
%Vor% Dann überprüfe ich, ob das Ergebnis gleich com.skype.raider.Main
ist. Dies gilt auch dann, wenn no aktiver Skype-Anruf ist, aber die Haupt-App geöffnet ist.
Danke für die Hilfe, besonders Reuben!
Bearbeiten: Sie benötigen die folgende Berechtigung in Ihrem Manifest
%Vor%An dem Tag, an dem Skype irgendetwas davon ändert (möglicherweise in dem Update, das in zwei Tagen erscheint - bevor Sie mit der Programmierung fertig sind), könnte Ihr Code kaputt gehen. Ich denke also nicht, dass es sich lohnt, so etwas zu versuchen.
Es tut mir leid, das ist vielleicht keine "Antwort", aber ich denke nicht, dass die Zeit, die darin investiert wird, es wert ist.
Es gibt ein paar Dinge, die Sie tun können, um Ihre Chance zu erhöhen, es zu erraten:
1) Überprüfen Sie, ob die Anwendung ausgeführt wird:
%Vor%2) Überprüfen Sie den Telefonstatus für den Datenaustausch mit dem PhoneManager
3) und überprüfen Sie schließlich die Skype Entwickler-Seite für jede bekannte API
Tags und Links android skype android-package-managers