UI um incoming calls zu modifizieren / erweitern

  • Antworten:6
Meschugge M
  • Forum-Beiträge: 24

03.02.2010, 10:41:35 via Website

Ich würde gerne etwas ähnliches machen wie die ganzen "Caller ID" Anwendungen (die z.B. über ne Rückwärtssuche versuchen der anrufenden Nummer eine Person zuzuordnen).
Offensichtlich gibt es aktuell keine Schnittstellen um den incoming call screen zu modifizieren, daher tun diese Anwendungen notgedrungen irgendwie über den incoming call screen malen (was dann auch häufig zu Problemen führt weil z.B. Annehmen oder Ablehnen Buttons überpinselt werden).

Wie auch immer, ich würde notgedrungen das selbe tun, weiss allerdings nicht wie ich generell irgendwas in einen "Top-Layer" painten kann bzw. was da überhaupt das "Startobjet" dazu wäre???

Gruß,
M

Antworten
Meschugge M
  • Forum-Beiträge: 24

04.02.2010, 09:53:36 via Website

Zumindest für eine der existierenden "Incoming-Call" Apps hab ich herausgefunden, dass sie einfach Toasts verwendet (http://developer.android.com/guide/topics/ui/notifiers/toasts.html um Info über den In-Call-Screen zu legen.
Für andere Apps wie z.B. http://www.threadabort.com/archive/2009/12/14/city-caller-id-my-first-android-app.aspx ist es mir hingegen immer noch ein Rätsel :(

Antworten
Christian Grasser
  • Forum-Beiträge: 380

04.02.2010, 10:36:03 via Website

Das müsste doch ganz normal gehen wenn du eine Activity hast und diese mit dem Dialog Theme anzeigst.
Damit du keinen Rand usw. hast müsstest du halt noch schauen wie man diesen nicht anzeigt.

Antworten
Meschugge M
  • Forum-Beiträge: 24

04.02.2010, 12:45:34 via Website

Aber überschlägt sich das nicht mit der Activity die vom System bei nem In-Call gestartet wird (nämlich "com.android.phone.InCallScreen")?
Ich müsste doch dann irgendwie sicherstellen, dass ich meine Activity nicht vorher starte, sonst übermalt mir der Standard InCallScreen meine Activity, oder?

Antworten
Christian Grasser
  • Forum-Beiträge: 380

04.02.2010, 13:03:12 via Website

Stimmt hast recht das könnte passieren, dann müsstest einfach ein paar Millisekunden warten bevor du deine Activity startest.
Aber ich glaube da gibt es sicher eine bessere Lösung... nur wüsste ich sonst jetzt nicht wie...

Antworten
Sven Mutscher
  • Forum-Beiträge: 1

22.07.2010, 12:47:50 via Website

Hi,

gibbet hier irgendeine Lösung ? Ich habe einen Service installiert und fange damit alle eingehenden Anrufe ab und zeige
daraufhin in einer Activity die Anrufinformationen an. Starte ich die Activity um 1000ms zeitversetzt mit nem Thread.sleep,
dann habe ich die Activity über der InCallActivity. Problem: Der User soll den Anruf gang normal entgegen nehmen können,
was aber nicht geht, weil meine Activity im Vordergrund ist. Ich muss also irgendwie den KeyEvent durchreichen. Ne idee ?

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

22.07.2010, 13:38:58 via Website

Persönlich bin ich recht froh das es nicht so einfach geht. Soweit Ich weiss kannst du nicht beeinflussen welche Activity zuerst gestartet wird. Zumal doch eh nur EIN intent verschickt wird mit und nicht mehr. Oder wird hier eine Action verwendet ?

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten