Hirdetés

Alkalmazásfejlesztés badára: Alkalmazáson belüli telefonálás

Biztosan mindenki összefutott már olyan alkalmazással, amelyből telefonhívásokat lehetett kezdeményezni. Badában ilyet direkt módon nem lehet, tehát nem csinálhatjuk meg azt, hogy meghívjuk a megfelelő függvényt egy gombnyomásra. Ennek az az oka, hogy ha ezt így meg lehetne csinálni, akkor a kódban bárhol elhelyezhetnénk egy ilyen sort, így kvázi rosszindulatú alkalmazásokat is írhatnánk.

Természetesen arra azért van mód, hogy telefonálásra ösztökéljük az alkalmazásunk használóját. Ezt az úgynevezett Osp::App::AppControl osztály segítségével tehetjük meg, segítségével kérhetjük el azt a statikus felületet, amelyen keresztül a felhasználó a hívást kezdeményezheti; ez egyébként egy az egyben úgy néz ki, mint az alapértelmezett badás tárcsázó. Természetesen ezzel még nem vagyunk készen, a telefonszámunkat is bele kell plántálnunk a tárcsázóba, hogy emberünknek tényleg csak meg kelljen nyomni a hívásindító gombot. Az alábbi kódrészlet ezt valósítja meg.

Első lépésben érdemes összerakni a telefonszámot tartalmazó adatstruktúrát. A vezérlőt egy Osp::Base::Collections::ArrayList mutatóval kell megetetnünk, amely egy megfelelő formátumú Stringet tartalmaz. Ez annyit tesz, hogy a telefonszámot meg kell előznie egy tel: szövegnek, ebből fogja felismerni a vezérlő, hogy mit kell beleírnia a tárcsázóba. Ez után az AppManagertől el kell kérnünk a megfelelő vezérlőt, ezt jelen esetben a tárcsázót jelképező APPCONTROL_DIAL paraméterrel tehetjük meg. Innen már egyszerű dolgunk van, egyszerűen csak el kell indítanunk a dialert a Start() függvénnyel, amelynek a bemenője a telefonszámmal feltöltött lista.


Így néz ki a dialer felület

És ezzel meg is vagyunk, a fenti képen látszik, hogy hogyan néz ki az így kapott tárcsázó felülete. Az AppManagertől egyébként nem csak ezt a felületet kérhetjük el, van itt minden, többek között például SMS-küldő, képmegjelenítő, zenelejátszó, Bluetooth-kezelő és médialejátszó vezérlőket is elkérhetük. Ezekre részletesen a következő bejegyzésekben térünk ki.

dr. Kind

Azóta történt

Előzmények