Forum: PC-Programmierung FRITZ!Box Dialer App für Android


von Borislav B. (boris_b)



Lesenswert?

Hallo zusammen!

Ich möchte euch heute ein kleines Projekt vorstellen, das allerdings 
nichts mit Mikrocontrollern zu tun hat.
Viel mehr geht es um eine nützliche kleine Android-App, die sich an 
FRITZ!Box-User (mit Headset) richtet.

DIAL!Box:
https://play.google.com/store/apps/details?id=de.fun4mobile.dialfritz

Die Motivation diese App zu schreiben war Folgendes:
Häufig rufe ich mit meinem DECT-Headset die Verwandtschaft an, da es bei 
längeren Gesprächen praktisch ist, die Hände frei zu haben (z.B. um 
nebenbei den TeamViewer zu bedienen oder die Wohnung aufzuräumen).

Allerdings ist das Wählen per Headset ziemlich mühselig:

Option A:
Laptop aufklappen, fritz.box ansurfen, einloggen, Telefonbuch öffnen, 
Kontakt raussuchen, anwählen lassen, am Headset abnehmen.

Option B:
Mit dem normalen Telefon die Nummer wählen, den Angerufen bitten zu 
warten, das Gespräch per Tastenkombination an das Headset übergeben, 
dort annehmen, das normale Telefon auflegen.

Beides fand ich ziemlich suboptimal, und wollte eine einfachere Lösung 
haben :-)

Was macht DIAL!Box?
Es gibt zwei Möglichkeiten DIAL!Box zu verwenden:
1. Einen Kontakt aus dem Android-Telefonbuch antippen, die Nummer mit 
DIAL!Box wählen lassen, am Headset abnehmen -> Fertig!
2. In der App wird das FRITZ!Box-Telefonbuch angezeigt. Darüber können 
auch die Nummern, die dort gespeichert sind, gewählt werden.


Ich hoffe die App nützt dem einen oder anderen von euch was :-)
Über Feedback und Anregungen würde ich mich sehr freuen...

von Urban (Gast)


Lesenswert?

Warum hängst du die App nicht einfach hier an?

von Draco (Gast)


Lesenswert?

Ich würde die Nummern in den Bildern schwärzen ;-)

von Borislav B. (boris_b)


Lesenswert?

Draco schrieb:
> Ich würde die Nummern in den Bildern schwärzen ;-)

Das sind alles fake-Nummern, keine Angst ;-)

Urban schrieb:
> Warum hängst du die App nicht einfach hier an?

Lädst Du tatsächlich Apps von irgendwelchen Websites und installierst 
sie bei Dir? Das würde ich nicht tun (auch wenn es der nette Typ aus dem 
Mikrocontroller.net Forum ist) ;-)
Über den PlayStore ist das Ganze (zumindest etwas) sicherer...

von Oliver S. (oliverso)


Lesenswert?

Boris P. schrieb:
> 2. In der App wird das FRITZ!Box-Telefonbuch angezeigt. Darüber können
> auch die Nummern, die dort gespeichert sind, gewählt werden.

Du kennst die Fritz!App Fon ?

Oliver

von oszi (Gast)


Lesenswert?

Oliver S. schrieb:
> Du kennst die Fritz!App Fon ?

Damit kann man telefonieren, ja. Kann man aber auch nur wählen und 
beim Zustandekommen das Gespräch mit einem DECT-Teil führen? Wie geht 
das? Würde mich auch interessieren.

von Borislav B. (boris_b)


Lesenswert?

oszi schrieb:
> Damit kann man telefonieren, ja. Kann man aber auch nur wählen und
> beim Zustandekommen das Gespräch mit einem DECT-Teil führen? Wie geht
> das? Würde mich auch interessieren.

Ich hab's nicht hinbekommen ;-)
Deshalb habe ich diese App geschrieben...

von oszi (Gast)


Lesenswert?

Boris P. schrieb:
> Ich hab's nicht hinbekommen ;-)
> Deshalb habe ich diese App geschrieben...

Eben, ich auch nicht. Und in der Beschreibung bzw. in der Hilfe von 
FritzApp Fon konnte ich auch nichts entdecken. Deshalb hab ich mich auch 
so über den Einwurf von Oliver S. gewundert.

Ich finde die Idee gut und werde sie, wenn sie im Play auftaucht, auf 
jeden Fall mal probieren.

von Borislav B. (boris_b)


Lesenswert?

oszi schrieb:
> Ich finde die Idee gut und werde sie, wenn sie im Play auftaucht, auf
> jeden Fall mal probieren.

Die sollte schon drin sein.

Welche Android Version hast du denn? Ich habe erst mal alles ab 5.0 
aufwärts unterstützt.

von oszi (Gast)


Lesenswert?

Boris P. schrieb:
> oszi schrieb:
>> Ich finde die Idee gut und werde sie, wenn sie im Play auftaucht, auf
>> jeden Fall mal probieren.
>
> Die sollte schon drin sein.
>
> Welche Android Version hast du denn? Ich habe erst mal alles ab 5.0
> aufwärts unterstützt.

Im Moment hab ich die 4.3.1 auf einem Galaxy S

von Draco (Gast)


Lesenswert?

Wie bekommt man eigentlich eine App in den Store, mal so am Rande.

von Borislav B. (boris_b)


Lesenswert?

oszi schrieb:
> Im Moment hab ich die 4.3.1 auf einem Galaxy S

OK, dann wird sie dir nicht angeboten :-(
Ich schau nachher mal, ob es viel Aufwand ist Unterstützung für 4.x er 
Androids einzubauen.

Draco schrieb:
> Wie bekommt man eigentlich eine App in den Store, mal so am Rande.

Bei Google einen Entwickler-Account anlegen. Dann das Kompilat 
signieren, hochladen, mit Metadaten (Screenshots, Icons, Beschreibungen, 
Altersfreigaben usw.) versehen und auf "veröffentlichen" klicken. Fertig 
:-)

von Marc H. (marchorby)


Lesenswert?

Boris P. schrieb:
> Deshalb habe ich diese App geschrieben...

Poste mal bitte den Quellcode!

von Borislav B. (boris_b)


Lesenswert?

Marc H. schrieb:
> Poste mal bitte den Quellcode!

Sonst noch was? ^^

Scherz bei Seite:
Als Unterbau für die App habe ich eine recht schöne (Eigenlob? :-)) 
Library zum ansteuern der FRITZ!Box geschrieben. Diese werde ich in 
Kürze auf GitHub veröffentlichen.
Das ist auch der eigentliche, spannende Teil. Die App ist mehr oder 
weniger "nur" ein GUI Wrapper drum herum...

von Urban (Gast)


Lesenswert?

Boris P. schrieb:

> Lädst Du tatsächlich Apps von irgendwelchen Websites und installierst
> sie bei Dir?

Nicht von irgendwelchen Websites: Z. B. vom Datensammler Google lade ich 
keine Apps.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Bevor das zum großen Rätselraten ausartet, die offizielle AVM 
Entwicklerdokumentation findet man hier:

https://avm.de/service/schnittstellen/

Das früher in der FB vorhandene TAPI-Interface wird seit FritzOS 6.50 
nicht mehr unterstützt und war nie richtig dokumentiert. Genauso sind 
die Eigenschaften des SIP Registrar in der FritzBox nicht dokumentiert.

Allgemein, wer ein bisschen an der FB rumhacken möchte findet (zum Teil 
veraltete) Informationen hier: 
http://www.wehavemorefun.de/fritzbox/AVM_Wiki

von Borislav B. (boris_b)


Lesenswert?

Hannes J. schrieb:
> Bevor das zum großen Rätselraten ausartet, die offizielle AVM
> Entwicklerdokumentation findet man hier:
>
> https://avm.de/service/schnittstellen/

Da hab ich mich auch bedient :-)
TR-064 heißt das Zauberwort. Das ist im Prinzip SOAP, allerdings liefert 
AVM keine WSDL-Dateien. Das macht das ganz recht mühselig...

von Borislav B. (boris_b)


Lesenswert?

Android 4.x zu unterstützen ist leider nicht so einfach wie gehofft :-(
Das Wählen von Nummern aus anderen Apps heraus (z.B. Android 
Telefonbuch) scheint nicht ohne Weiteres möglich zu sein.

Aber ich experimentiere noch ein bisschen herum...

von oszi (Gast)


Lesenswert?

Boris P. schrieb:
> Android 4.x zu unterstützen ist leider nicht so einfach wie
> gehofft :-(
> Das Wählen von Nummern aus anderen Apps heraus (z.B. Android
> Telefonbuch) scheint nicht ohne Weiteres möglich zu sein.
>
> Aber ich experimentiere noch ein bisschen herum...

Ja, danke für deine Mühe.
Ich bin keiner, der etwas wegwirft, wenn es noch funktioniert. Und ich 
sehe es nicht ein, daß ich mir ein neues Handy kaufen soll, nur weil es 
neuere gibt. Das Galaxy hat nun auch schon viele Jahre auf dem Buckel, 
es gab (glaube ich) dafür auch keine Updates. Aber ich habe mir mal vor 
einiger Zeit ein neues System draufgemacht (CyanogenMod), damit läuft es 
besser als im Originalzustand. Warum soll ich mir also ein neues kaufen?
(nur mal als Erläuterung) :-)

von Le X. (lex_91)


Lesenswert?

oszi schrieb:
> Aber ich habe mir mal vor
> einiger Zeit ein neues System draufgemacht (CyanogenMod), damit läuft es
> besser als im Originalzustand. Warum soll ich mir also ein neues kaufen?
> (nur mal als Erläuterung) :-)

Wenn du vor Custom ROMs eh nciht zurückschreckst:
gibt es da kein neueres CM für dein Handy?
Grad Samsung ist doch immer gut unterstützt.

von oszi (Gast)


Lesenswert?

Le X. schrieb:
> oszi schrieb:
>> Aber ich habe mir mal vor
>> einiger Zeit ein neues System draufgemacht (CyanogenMod), damit läuft es
>> besser als im Originalzustand. Warum soll ich mir also ein neues kaufen?
>> (nur mal als Erläuterung) :-)
>
> Wenn du vor Custom ROMs eh nciht zurückschreckst:
> gibt es da kein neueres CM für dein Handy?
> Grad Samsung ist doch immer gut unterstützt.

Da wollte ich sowieso mal schauen. Hab ich aber noch nicht gemacht, weil 
eigentlich keine Notwendigkeit bestand. Aber ich guck mal, was es da 
neues gibt :-)

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Boris P. schrieb:
> Android 4.x zu unterstützen ist leider nicht so einfach wie gehofft :-(
> Das Wählen von Nummern aus anderen Apps heraus (z.B. Android
> Telefonbuch) scheint nicht ohne Weiteres möglich zu sein.
>
> Aber ich experimentiere noch ein bisschen herum...

Was genau ist das Problem? Ich erinnere mich dunkel das schon vor ewigen 
Zeiten auf 2.3 gemacht zu haben.

Lesen der Kontakt-Daten:

https://developer.android.com/training/contacts-provider/index.html

Oder ist es das Wählen?

Dazu Phone-Status abfragen / Callback installieren und eine(n)[sp?] 
Intent mit ACTIOD_DIAL (oder war es ACTION_CALL?) broadcasten.

Oder willst du selber auf eine gebroadcasteten ACTION_DIAL oder 
ACTION_CALL Intent reagieren?

Dann registriere Intent-Filter.

von Borislav B. (boris_b)


Lesenswert?

Hannes J. schrieb:
>
> Dann registriere Intent-Filter.

Genau so mache ich das. Ab 5.0 funktioniert der auch, aber nicht mit 
4.x. Da scheint es nicht möglich zu sein (?) Intents für das Wählen von 
Telefonnummern zu registrieren... (oder es gibt da noch einen Trick, auf 
den ich nicht gekommen bin).

Das andere Problem ist die GUI: Ich verwende einige neue Funktionen 
(Toolbar, gefärbte Statusbar, Themes etc.), die erst mit 5.0 eingeführt 
wurden.
Zwar gibt es dafür Compability-Klassen, aber die machen noch ein wenig 
Ärger...

Es wäre vermutlich einfacher, ein aktuelleres CM zu flashen ;-)

von oszi (Gast)


Lesenswert?

Boris P. schrieb:
> Es wäre vermutlich einfacher, ein aktuelleres CM zu flashen ;-)

Hab gerade mal nachgeschaut, das aktuellste CM für das Galaxy S ist die 
Version 4.4.4.
Naja, man kann nicht alles haben :-)
Wäre auch nur ein "nice to have" für mich gewesen...

von Borislav B. (boris_b)


Lesenswert?

oszi schrieb:
> Ich bin keiner, der etwas wegwirft, wenn es noch funktioniert. Und ich
> sehe es nicht ein, daß ich mir ein neues Handy kaufen soll, nur weil es
> neuere gibt.

Wegwerfen tu ich sie auch nicht. Aber benutzen will ich die alten Gurken 
auch nicht mehr ;-)

Die alten Dinger taugen z.B. noch gut als Babyphone, MP3-Player für die 
Kids, Bastelmaterial, Upgrades für die Bucklige Verwandtschaft oder den 
Verkauf bei eBay etc.

: Bearbeitet durch User
von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Boris P. schrieb:
> Hannes J. schrieb:
>>
>> Dann registriere Intent-Filter.
>
> Genau so mache ich das. Ab 5.0 funktioniert der auch, aber nicht mit
> 4.x. Da scheint es nicht möglich zu sein (?) Intents für das Wählen von
> Telefonnummern zu registrieren... (oder es gibt da noch einen Trick, auf
> den ich nicht gekommen bin).

Doch, das geht. Skype macht das zum Beispiel seit "Ewigkeiten", genauso 
wie z.b. SIP Clients wie CSipSimple.

Manifest richtig gesetzt?

Mal ACTION_DIAL statt ACTION_CALL ausprobiert?

Mal die Default Action in den App Einstellungen der Telefon-App gelöscht 
("Launch by default" bzw. "standardmäßig starten")?

Den Intent-Chooser im Code zwangsweise aufrufen 
(https://developer.android.com/training/sharing/send.html#send-text-content)? 
Wenn deine App nicht auftaucht ist sie für den Intent nicht registriert. 
Logcat sorgfältig nach Fehlern absuchen.

Eine Android-Version (4.4.3?) hatte ein zusätzliches App-Permission 
Sicherheits Management-Feature (in den Sicherheits-Einstellungen). Sie 
mal nach, ob Calls dort für deine App verboten sind. Google hat das in 
der nächsten Version schleunigst wieder ausgebaut, weil es auch die 
google-eigene Datenschnüffelei in den Kontakten, auslesen der Identität 
usw. verhinderte.

CSipSimple ist Open Source. Notfalls mal in den Code (dürfte ziemlich 
viel sein) reinsehen.


> Es wäre vermutlich einfacher, ein aktuelleres CM zu flashen ;-)

Für viele Gurken gibt es kein CM. Laut Google sind aktuell noch fast 30% 
auf 4.4.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.