8. INTENT FILTERS A BRODACAST RECEIVER

Podobné dokumenty
(c) Miroslav Balík, Ondřej Kroupa, Martin Pelant 11/29/ Přednáška. PreferenceActivity. Intenty (pokročilé) Vývojářské nástroje

11/29/11. (c) Miroslav Balík, Ondřej Kroupa, Martin Pelant. 11. Přednáška. Broadcast receiver Timer Alarmy Widgety

KMI / TMA. Tvorba mobilních aplikací. 8. seminář ZS 2017/2018 ČTVRTEK 13:15-15:45

Začínáme s vývojem pro Android

Obsah. Životní cyklus activity Context Intent Spouštění aktivit Interakce s uživatelem. Toast. (c) Miroslav Balík, Ondřej Kroupa, Martin Pelant

3. ŽIVOTNÍ CYKLUS ACTIVITY

(c) Miroslav Balík, Ondřej Kroupa, Martin Pelant 11/29/ přednáška. Android projekt. Manifest. Activity. Uživatelské rozhraní (základy)

Uživatelské rozhraní. Layouty FrameLayout LinearLayout RelativeLayout TableLayout ScrollView Taby Dialogy ViewFlipper 11/29/11

Příklad zobrazení toastu s vlastním designem

(c) Miroslav Balík, Ondřej Kroupa, Martin Pelant 11/29/ přednáška. Práce na pozadí. Služby. Notifikace

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5

Obslužný software. PAP ISO 9001

Programování v Javě I. Leden 2008

Android 100% Java telefon. Petr Musil

Studijní skupiny. 1. Spuštění modulu Studijní skupiny

ANDROID. Ing. Ladislav Pešička

Android za hranicemi Hello World

Programování v Javě I. Únor 2009

Windows Live Movie Maker

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Reliance 3 design OBSAH

Výčtový typ strana 67

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

TELEFONNí LiNKA PREMiUM PRŮVODCE NASTAVENíM SLuŽBY MEET-ME KONFERENCE

Použití inteligentních značek s informačními službami

Modul IRZ návod k použití

Aplikace s grafickým uživatelským rozhraním

Java GUI události. Událostmi řízené programování. Zpracování = obsluha událostí

PŘÍKAZ K ZADÁNÍ SEPA PLATBY V APLIKACI MULTICASH KB

Grantové projekty. V současné době jsou zpracovány tyto části:

ELEKTRONICKÉ PODÁNÍ OBČANA

Meeting Asistent. Manuál pro instalaci a ovládání aplikace. Nokia + Sony Ericsson telefony s OS Symbian

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

JAVA Android Java, letní semestr

11/29/11. (c) Miroslav Balík, Ondřej Kroupa, Martin Pelant. 12. Přednáška. Zjišťování polohy Google Mapy OverlayItem Zálohování.

Veřejné. Aplikace EP2W. Uživatelská příručka pro externího uživatele

Java a XML. 10/26/09 1/7 Java a XML

Stručný průvodce aplikací Sběr dat pro RIV

Úvod do programovacích jazyků (Java)

Postup přechodu na podporované prostředí. Přechod aplikace BankKlient na nový operační systém formou reinstalace ze zálohy

1. Aplikace Vyhledání a stažení aplikace Založení BlackBerry ID. 2. Internet. 3. Zabezpečení

MATURITNÍ PRÁCE dokumentace

Naším cílem je Vaše spokojenost...

KMI / TMA Tvorba mobilních aplikací

DUM 14 téma: Interakce s uživatelem

8 Třídy, objekty, metody, předávání argumentů metod

Formuláře. Aby nám mohli uživatelé něco hezného napsat třeba co si o nás myslí!

HP-2000E UŽIVATELSKÝ MANUÁL

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5

Metodický návod na vytváření Ukládacích jednotek (UJ)

Průvodce aplikací GTS Webový portál pro správce

Vyšívací stroj Dodatek k uživatelské příručce

1. ESO9 MAJETEK ZÁKLADNÍ VLASTNOSTI DOPORUČENÝ HW... 3

KMI / TMA Tvorba mobilních aplikací. 2. seminář ZS 2016/2017 Středa 13:15-15:45

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

Aplikace NAM tracker

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Dokumentace k mobilní aplikaci GoodCall

ZÁKLADNÍ UŽIVATELSKÝ MANUÁL PRO SÍŤOVÉ FAXOVÁNÍ

Prohlížení a editace externích předmětů

Manuál k programu KaraokeEditor

První kapitola úvod do problematiky

RESTful API TAMZ 1. Cvičení 11

Share online vydání

Connect Genius V2. Instalace programu.

Mobilní malware na platformě Android Přednáška 1. Ing. Milan Oulehla

UJO Framework. revoluční architektura beans. verze

Obsah. 1.1 Práce se záznamy Stránka Dnes Kontakt se zákazníkem... 5

Použití Office 365 na telefonu s Androidem

Soukromá střední odborná škola Frýdek-Místek, s.r.o.

ipodatelna Uživatelská příručka

DEKRA Emise CIS manuál uživatele

Lambda funkce Novinky v interfaces Streamy Optional - aneb zbavujeme se null. Java 8. Ondřej Hrstka

KMI / TMA Tvorba mobilních aplikací

PROGRAM SKYPE. Návod Skype. VERZE NÁVODU A PROGRAMU VYUŽITÍ PRO V TOMTO NÁVODU SE NAUČÍTE. STÁHNUTÍ A INSTALACE

Programátorská příručka

Více o konstruktorech a destruktorech

Výchozí a statické metody rozhraní. Tomáš Pitner, upravil Marek Šabo

První seznámení s mobilní aplikací PATRIOT GPS

Obsah OLAP A ESO9... 3

Share online vydání

OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC

20. Projekt Domácí mediotéka

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Ovládání ústředny Visonic přes mobilní telefon

Základní nastavení telefonu Vložení SIM karty a baterky Vložení paměťové karty Zapnutí telefonu a PIN Kontakty Kopírování ze SIM karty do telefonu

Aplikace Založení účtu Microsoft a stažení aplikace Internet Nastavení u Připojení/odpojení Wi-Fi sítě Nastavení internetu v zahraničí

Dokumentace ke službě SMS Connect.

Uživatelská příručka MWA - Rezervační modul

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Maturitní projekt do IVT Pavel Doleček

SONOFF TH10 / TH Stáhněte aplikaci "ewelink". Vyhledejte "ewelink" v aplikaci APP Store pro verzi ios nebo verzi Google Play pro Android.

Obsah. Úvod 11. Vytvoření emulátoru 20 Vytvoření emulátoru platformy Android 4.4 Wearable 22 Spouštění aplikací na reálném zařízení 23

Cubot R8 podrobný návod k použití

Choose a building block. Znalostní báze Kleos. Kleos 6.5 (březen 2019)

Karusel. Compiled :34:04 by Document Globe 1

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Ovládání přístroje Aastra 6753

Transkript:

8.4.2013 1 Programování pro operační systém Android (BI-AND) (c) Autor a garant: M. Havryluk, Spolupráce: M. Balík, O. Kroupa, M. Pelant 8. INTENT FILTERS A BRODACAST RECEIVER BI-AND

8.4.2013 2 8. Přednáška PreferenceActivity Intenty (pokračování) Intent-Filter Broadcast Receiver

8.4.2013 3 PreferenceActivity Framework umožňující definovat obrazovku s nastavením aplikace pomocí XML uložené v res/xml/ Propojení XML komponent přímo na položky v SharedPreferences Konzistentní vzhled napříč aplikacemi Obtížněji se styluje

8.4.2013 4 PreferenceActivity Nastavení je automaticky uloženo do defaultních SharedPreferences společných pro všechny komponenty aplikace Komponenta se skládá ze 2 částí: XML layoutu Třída dědící od PreferenceActivity (musí být definována v AndroidManifestu jako každá jiná activita)

8.4.2013 5 PreferenceActivity XML Každý preference layout je definovaný jako hierarchie začínající elementem PreferenceScreen 1. <?xml version="1.0" encoding="utf-8"?> 2. <PreferenceScreen 3. xmlns:android="http://schemas.android.com/apk/res/android"> 4.... 5. </PreferenceScreen> Je možné do sebe vnořit více obrazovek PreferenceScreen,každá pak bude reprezentována jako položka, po jejímž výběru se zobrazí nová obrazovka s nastavením 1.... 2. <PreferenceScreen 3. android:key="secondprefscreen" 4. android:title="vnorena obrazovka preferences" 5. android:summary="dalsi Preferences"> 6.... 7. </PreferenceScreen> 8....

8.4.2013 6 PreferenceActivity XML elementy V PreferenceScreen je dále možné přidávat šest různých elementů: CheckBoxPreference jednoduchý Checkbox, který vrací true/false ListPreference po výběru zobrazí RadioGroup, kde uživatel může zvolit jednu položku V android:entries se definují položky z res/values/arrays, z kterých uživatel vybírá V android:entryvalues se k nim pak definují hodnoty, které se uloží; opět z res/values/arrays

8.4.2013 7 PreferenceActivity XML elementy EditTextPreference po výběru zobrazí EditText Vrací String RingtonePreference po výběru zobrazí radiogroup s dostupnými vyzváněcími tóny Vrací String s URI zvoleného tónu Preference obecná položka, chová se v podstatě jako Button PreferenceCategory kategorie pomocí které od sebe můžeme položky oddělit

8.4.2013 8 PreferenceActivity XML atributy U každé Preference můžeme definovat tyto základní parametry android:title titulek položky (zobrazuje se v 1. řádku) android:summary podrobnější popisek položky (2. řádek) android:defaultvalue defaultní hodnota (použije se, pokud zatím nebyla žádná hodnota uložena) android:key klíč, pod kterém se uloží hodnota do SharedPreferences

8.4.2013 9 PreferenceActivity XML atributy Další možné parametry u každé položky android:persistent určuje, jestli se tato položka bude ukládat do SharedPreferences (false = nebude) android:enabled určuje, jestli je tato položka aktivní android:dependency pokud se vyplní určená položka nebo se změní její stav (enabled/disabled), daná preference půjde nebo nepůjde použít

8.4.2013 10 PreferenceActivity - XML 1. <?xml version="1.0" encoding="utf-8"?> 2. <PreferenceScreen 3. xmlns:android="http://schemas.android.com/apk/res/android"> 4. <PreferenceCategory android:title="prvni kategorie"> 5. <CheckBoxPreference 6. android:title="title" 7. android:defaultvalue="false" 8. android:summary="summary" 9. android:key="checkboxpref" /> 10. <ListPreference 11. android:title="list Preference" 12. android:summary="vyber jedne z hodnot" 13. android:key="listpref" 14. android:defaultvalue="2" 15. android:entries="@array/listarray" 16. android:entryvalues="@array/listvalues" 17. android:dependency="checkboxpref" /> 18. </PreferenceCategory> 19. <PreferenceCategory android:title="druha kategorie"> 20. <RingtonePreference 21. android:name="ringtone Preference" 22. android:summary="vybrat zvoneni" 23. android:title="ringtones" 24. android:key="ringtonepref" /> 25. </PreferenceCategory> 26.</PreferenceScreen>

8.4.2013 11 PreferenceActivity - Java Ve třídě dědící od PreferenceActivity přiřadíme námi vytvořené XML zavoláním addpreferencesfromresource(id) Konkrétní Preference získáme pomocí findpreference(key); 1. public class Settings extends PreferenceActivity { 2. @Override 3. protected void oncreate(bundle savedinstancestate) { 4. super.oncreate(savedinstancestate); 5. addpreferencesfromresource(r.xml.preferences); 6. 7. ListPreference listpreference = (ListPreference) findpreference("listpref"); 8. //Nastavime hodnoty u listpreference 9. listpreference.setentries(new String[] { "polozka1", "polozka2" }); 10. listpreference.setentryvalues(new String[] { "1", "2" }); 11. } 12. }

8.4.2013 12 PreferenceActivity - Java PreferenceActivity je provázána s default SharedPreferences Nastavení vlastního PrefFile jako default SharedPreferences 1. PreferenceManager prefmgr = getpreferencemanager(); 2. prefmgr.setsharedpreferencesname("my_preferences"); 3. prefmgr.setsharedpreferencesmode(mode_world_readable); 4. 5. addpreferencesfromresource(r.xml.prefs);

8.4.2013 13 PreferenceActivity - Java Pokud potřebujeme sledovat změny v nastavení, implementujeme OnSharedPreferenceChangeListener 1. public class Settings extends PreferenceActivity 2. implements OnSharedPreferenceChangeListener { 3. @Override 4. protected void oncreate(bundle savedinstancestate) { 5. super.oncreate(savedinstancestate); 6. addpreferencesfromresource(r.xml.preferences); 7. 8. // ziskame defaultni SharedPreferences, do kterych zapisuje PreferenceActivity 9. SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); 10. // zaregistrujeme OnSharedPreferenceChangeListener 11. sp.registeronsharedpreferencechangelistener(this); 12. 13. } 14. 15. // Zavola se pri jakekoli zmene danych SharedPreferences 16. @Override 17. public void onsharedpreferencechanged(sharedpreferences sp, String key) { 18. // Provedeni potrebnych ukonu, pokud uzivatel zmeni nejake nastaveni 19. } 20.}

8.4.2013 14 Intent Zpráva s informacemi pro příjemce Jakým způsobem se má naložit s daty ve zprávě Zpráva s informacemi pro systém Kategorie komponenty a instrukce, jakým způsobem má být spuštěna Pro Intent lze nastavit šest hlavních parametrů: Component Name Action Data Category Extras Flags

8.4.2013 15 Intent Filters Určují, pro jaký obsah se může daná komponenta použít V úvahu se berou tyto tři parametry Intentu: Action Data (URI i MIME type) Category Každá komponenta může mít definováno více Intent Filters Definují se v AndroidManifest.xml v tagu dané komponenty 1. <activity 2. android:name=".shareactivity" 3. android:label="myshare Activity"> 4. <intent-filter> 5. <action 6. android:name="android.intent.action.send" /> 7. <category 8. android:name="android.intent.category.default" /> 9. <data 10. android:mimetype="text/plain" /> 11. </intent-filter> 12. </activity>

8.4.2013 16 Intent Component Name Název komponenty, která se má postarat o přijetý Intent Skládá se z Celého názvu cílové komponenty např. cz.cvut.fit.contactactivity Názvu package např. cz.cvut.fit Název cílové komponenty a package nemusí být vždy nutně stejný Určení pomocí metod setcomponent(), setclass()nebo setclassname()

8.4.2013 17 Intent - Action Název akce, jaká má být provedena Podobné jako u protokolu HTTP a operací GET, POST, PUT, DELETE atd. V Android API je množství akcí daleko větší Je možné rovněž vytvářet vlastní akce

8.4.2013 18 Intent Filters Action Definuje akci, pro kterou se daná komponenta má spustit Při definování vlastní akce se doporučuje zahrnout celé jméno balíčku např. cz.cvut.example.show_color Intent filtr v AndroidManifest.xml 1. <intent-filter> 2. <action 3. android:name="android.intent.action.send" /> 4.... 5. </intent-filter> Nastavení akce 1. intent.setaction(intent.action_send); 2. //nebo "android.intent.action.send

8.4.2013 19 Intent nejpoužívanější akce Intent.ACTION_CALL Zahájí telefonní hovor Vyžaduje oprávnění android.permission.call_phone Intent.ACTION_DIAL Otevře telefonní aplikaci s předvyplněným číslem Intent.ACTION_EDIT Slouží k editaci dat Intent.ACTION_MAIN Spustí hlavní activitu aplikace Intent.ACTION_VIEW Zobrazí data uživateli (zobrazení obrázku, přehrání hudby ) Intent.ACTION_SEND Odešle data Intent.ACTION_DELETE Smaže daná data

8.4.2013 20 Intent Data Definuje, pro jaký typ dat se má komponenta použít Tag <data> může specifikovat URI a/nebo MIME typ URI je rozděleno do 4 částí, z nichž každá má svůj atribut v tagu <data> - scheme://host:port/path Intent filtr v AndroidManifest.xml 1. <intent-filter> 2.... 3. <data 4. android:mimetype="text/plain" 5. android:scheme="file" /> 6.... 7. </intent-filter> Nastavení typu a URI 1. intent.settype("text/plain"); 2. intent.setdata(uri.parse("file:///sdcard/folder/file.txt"));

8.4.2013 21 Intent Category (Dodatečná) informace o tom, jaká komponenta má zpracovat Intent Nejpoužívanější kategorie: Intent.CATEGORY_PREFERENCE Cílová activita je panel s nastavením Intent.CATEGORY_DEFAULT Přidávána defaultně při startactivity() Cílová komponenta není určena

8.4.2013 22 Intent nejpoužívanější kategorie Intent.CATEGORY_BROWSABLE Cílová activita je uplatněná jako prohlížeč dat předaných odkazem Intent.CATEGORY_HOME Activita zobrazuje domovskou obrazovku (náhrada defaultního launcheru) Intent.CATEGORY_LAUNCHER Počáteční activita, která se spustí po vybrání z launcheru

8.4.2013 23 Intent Filtres Category Intent projde intent filtrem, pokud filtr obsahuje všechny v intentu nastavené kategorie Všechny intenty předané do startactivity() obsahují minimálně tuto kategorii: android.intent.category.default Intent filtr v AndroidManifest.xml 1. <intent-filter> 2.... 3. <category android:name="android.intent.category.default" /> 4. <category android:name="android.intent.category.browsable" /> 5.... 6. </intent-filter> Přidání kategorie 1. intent.addcategory(intent.category_browsable); 2. intent.addcategory(intent.category_preference); Výjimka pro Explicit Intents a MAIN Action/Launcher Category

8.4.2013 24 Intent Extras a Flags Extras Předání dalších informací pomocí klíč/hodnota Přenáší se zde další potřebné údaje v rámci systémových Intent Viz. 7. přednáška Flags Určuje, jakým způsobem se má spustit daná komponenta Řazení na zásobník, animace, launchmode Viz. 3. přednáška

8.4.2013 25 Intent - Explicitní Spouštějí přesně definovanou třídu (resp. komponentu) Komponenta může být: Activity Service Broadcast Receiver Většinou nejsou používány vývojáři jiných aplikací Neznají přesné jméno komponenty Název komponenty se může změnit

8.4.2013 26 Intent - Implicitní Nemají přímo definovaný cíl Pokud existuje více potenciálních Activit pro daný Intent, může si uživatel zvolit, jakou chce spustit Jednoduché rozšíření funkčnosti programu Většinou se používají ke spouštění komponent jiných aplikací

8.4.2013 27 Intent - Implicitní Název komponenty zůstává nevyplněn Systém porovná obsah Intentu s Intent Filtres komponent a vybere ty, které mohou daný Intent přijmout Lze dopředu zjistit jaké komponenty mohou Intent přijmout pomocí PackageManager metody queryintentactivities(), queryintentservices(), queryintentreceivers()

8.4.2013 28 Intent Filter edux filtr <activity android:name=".eduxactivity" android:label="edux"> <intent-filter android:label="edux parser"> <action android:name= "android.intent.action.view" /> <category android:name= "android.intent.category.default"/> <category android:name= "android.intent.category.browsable"/> <data android:scheme="https" android:host="edux.fit.cvut.cz" /> </intent-filter> </activity>

8.4.2013 29 Intent výběr activity Dialog výběru activit umožňuje standardně nastavit 1 activitu jako defaultní Pro vynucené zobrazení dialogu použijeme Intent.createChooser(Intent,String); Vhodné při sdílení 1. Intent intent=new Intent(Intent.ACTION_SEND); 2. intent.settype("text/plain"); 3. intent.putextra(intent.extra_text, "text, ktery chceme sdilet"); 4. startactivityforresult(intent.createchooser(intent, "Sdilej"), 0);

8.4.2013 30 Další informace o Intents Registr Intents a přidružených aplikací http://www.openintents.org Další pravidla pro zachytávání Intents http://developer.android.com/guide/topics/intents/i ntents-filters.html#ifs

8.4.2013 31 Broadcast Doposud jsme Intenty používali ke spouštění nové Activity, Service apod. Intenty však mohou sloužit také jako posílání anonymních zpráv mezi komponentami Většinou reakce na určité změny v systému Naprosto oddělený mechanismus od toho používaného např. při startactivity() Po odeslání broadcastu se pošle daný Intent všem BroadcastReceiverům zaregistrovaným na danou akci v Intentu

8.4.2013 32 Broadcast Receiver Zachytávání Broadcastu při komunikaci jednotlivých komponent v systému Je potřeba implementovat pouze metodu onreceive() Životní cyklus vázaný na danou komponentu. Jinak skončí po přijetí zprávy (dokončení onreceive()) Není vázaný na UI nemůže vytvořit dialog, nastartovat background thread apod.

8.4.2013 33 Broadcast Receiver - zaregistrování Staticky v AndroidManifest.xml 1. <receiver 2. android:name=".myreceiver"> 3. <intent-filter> 4. <action 5. android:name="cz.cvut.example.test_broadcast" /> 6. </intent-filter> 7. </receiver> Nebo dynamicky v kódu (např. pokud je potřeba pouze když je activita viditelná) 1. IntentFilter filter = new IntentFilter(TEST_BROADCAST); 2. BroadcastReceiver myreceiver = new TestReceiver(); 3. registerreceiver(myreceiver, filter); Provést např. v onresume() 4.... 5. unregisterreceiver(myreceiver); Provést např. v onpause()

8.4.2013 34 Broadcast Receiver Startují se automaticky obdržením broadcastu onreceive musí skončit do deseti sekund Pro delší operace je zde vhodné spustit službu BroadcastReceiver nedědí z Contextu, ten je předán metodě onreceive 1. public class MyReceiver extends BroadcastReceiver { 2. 3. @Override 4. public void onreceive(context context, Intent intent) { 5. int id = intent.getintextra("id", 0); 6.... 7. } 8. }

8.4.2013 35 Broadcast odeslání Sticky Intents Broadcast můžeme odeslat dvěma způsoby Normal Broadcast (Non-Ordered) Pošle se pomocí Context.sendBroadcast Je kompletně asynchronní všechny BroadcastReceivery obdrží tuto zprávu v nedefinovaném pořadí Většinou jsou zpracovány postupně, kvůli zabránění přílišnému vytížení systému Není možného ho zrušit

8.4.2013 36 Broadcast odeslání Ordered Broadcast Posílá se pomocí Context.sendOrderedBroadcast V jeden okamžik zpracovává zprávu maximálně jeden Broadcast Receiver Pořadí se určí atributem android:priority v Intent filteru daného receiveru Po zpracování zprávy může každý Brodcast Receiver určit, zda-li Předá výsledek dalšímu Broadcast Receiveru v pořadí Kompletně zruší daný broadcast a dál už se předávat nebude

8.4.2013 37 Broadcast odeslání 1.... 2. public static final String TEST_BROADCAST= 3. "cz.cvut.example.test_broadcast"; 4.... 5. 6. Intent i = new Intent(TEST_BROADCAST); 7. i.putextra("id", 3); 8. sendbroadcast(i); 9.... Obvykle se používá jméno balíčku, aby se zajistila jedinečnost Tímto řetězcem se musí zaregistrovat všechny BroadcastReceivery, které mají reagovat na tuto zprávu

8.4.2013 38 Broadcast nejpoužívanější Intent.ACTION_BOOT_COMPLETED Odešle se po nastartování systému Vyžaduje oprávnění RECEIVE_BOOT_COMPLETED Intent.ACTION_MEDIA_BUTTON Odešle se po stisknutí tlačítka pro ovládání přehrávače (např. na sluchátkách) V Intentu je v extra poli EXTRA_KEY_EVENT informace o daném tlačítku Intent.ACTION_CAMERA_BUTTON Odešle se po stisknutí tlačítka fotoaparátu

8.4.2013 39 Broadcast nejpoužívanější Intent.ACTION_MEDIA_EJECT Pokud se uživatel rozhodne vyjmout externí úložiště (média) Po obdržení této zprávy by aplikace měly ukončit IO z/do externího úložiště Intent.ACTION_BATTERY_LOW Odešle se spolu s hláškou o nízkém stavu baterky Intent.ACTION_SCREEN_ON a ACTION_SCREEN_OFF Odešle se při zapnutí a vypnutí obrazovky Intent.ACTION_MEDIA_MOUNTED a ACTION_MEDIA_UNMOUNTED Odešle se po vložení/vyjmutí externího úložiště (média)

8.4.2013 40 Broadcast - oprávnění Pro vyžádání oprávnění při odesílání broadcastu předáme nenullový parametr jedné z metod sendbroadcast(intent, receiverpermission); sendorderedbroadcast(intent, receiverpermission); Daný broadcast přijmou pouze receivery, které mají toto oprávnění definované v AndroidManifest.xml pomocí <uses-permission>

8.4.2013 41 Broadcast - oprávnění Pro vyžádání oprávnění při přijímání definujeme toto oprávnění při zaregistrování Broadcast Receiveru Dynamicky registerreceiver(receiver, filter, broadcastpermission, scheduler); Staticky Scheduler vlákno, které má Intent přijmout 1. <receiver 2. android:name=".myreceiver" 3. android:permission="android.permission.internet"> 4.... 5. </receiver> Broadcast Receiver přijme daný broadcast pouze z aplikací, které mají toto oprávnění definované v AndroidManifest.xml pomocí <uses-permission>

8.4.2013 42 Další zdroje http://www.openintents.org http://developer.android.com/guide/topics/intents/intentsfilters.html#ifs http://android-developers.blogspot.com/2012/02/sharewith-intents.html