Intents & Intent Filters
Intents & Intent Filters
codeandroid.org
Intents
Support interaction between any
application components available on an Android device
Intents
Intents
Intents
Intent Filters
AndroidManifest.xml
<activity android:name=.HelloWorld android:label=@string/app_name> <intent-lter> <action android:name=android.intent.action.MAIN/> <category android:name=android.intent.category.LAUNCHER/> </intent-lter> </activity>
Launch Hello World
Intent Filters
Required for Intent resolution to
match Intents to Activities, Services, or BroadcastReceivers AndroidManifest.xml of an application
Intent Filters
AndroidManifest.xml
<activity android:name=.HelloWorld android:label=@string/app_name> <intent-lter> <action android:name=org.codeandroid.intentstest.HelloWorld/> <category android:name=android.intent.category.DEFAULT/> </intent-lter> </activity>
Launch Hello World
Intent Filters
AndroidManifest.xml <activity android:name=.HelloWorld android:label=@string/app_name> <intent-lter> <action android:name=android.intent.action.VIEW/> <category android:name=android.intent.category.DEFAULT/> <category android:name=android.intent.category.BROWSABLE/> <data android:scheme=http android:host=androidium.org/> </intent-lter> </activity> Launch Hello World
Intent Filters
AndroidManifest.xml <activity android:name=.HelloWorld android:label=@string/app_name> <intent-lter> <action android:name=android.intent.action.VIEW/> <category android:name=android.intent.category.DEFAULT/> <category android:name=android.intent.category.BROWSABLE/> <data android:scheme=http android:host=www.google.com android:pathPrex=/advanced_search /> </intent-lter> </activity>
Intent Filters
AndroidManifest.xml <activity android:name=.HelloWorld android:label=@string/app_name> <intent-lter> <action android:name=android.intent.action.VIEW/> <category android:name=android.intent.category.DEFAULT/> <category android:name=android.intent.category.BROWSABLE/> <data android:scheme=codeandroid/> </intent-lter> </activity> Launch Hello World
Intents
Uri marketUri = Uri.parse(market://search?q=pname:com.buuuk.buUuk) Intent intent = new Intent (Intent.ACTION_VIEW, marketUri); startActivity(intent);
Broadcast Intents
Intents
components with the sendBroadcast method broadcasting to current and other applications
Broadcast Intents
Intents
Broadcast Receivers
listen to Broadcast Intents must be registered (either in code or
within the app manifest
Broadcast Receivers
registered inside code
IntentFilter lter = new IntentFilter(org.codeandroid.intentstest.TestBroadcastReceiver); TestBroadcastReceiver receiver = new TestBroadcastReceiver(); registerReceiver(receiver, lter);
public class TestBroadcastReceiver extends Broadcast Receiver { @Override public void onReceive(Context context, Intent intent) {
(.................... do something here................)
} }
Broadcast Receivers
register in app manifest
<receiver android:name=CameraPressedReceiver> <intent-lter> <action android:name=android.intent.action.CAMERA_BUTTON /> </intent-lter> </receiver> public class CameraPressed extends Broadcast Receiver { @Override public void onReceive(Context context, Intent intent) { } }
(.................... do something here................)