[android] 08_隐式意图激活系统软件

Android 4.0

隐式意图激活系统软件

1、打开一个系统软件,然后观察LogCat 
10-16 14:36:54.309: I/ActivityManager(161): START {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.contacts/.activities.DialtactsActivity bnds=[0,273][48,321] u=0} from pid 292
cmp:表示包名,/DialtactsActivity后表示Activity名

2、然后到源码中,aosp_jb422\packages\apps\Contacts\AndroidManifest.xml
搜索DialtactsActivity
<activity android:name=".activities.DialtactsActivity"
<intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <action android:name="android.intent.action.DIAL" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="tel" />
 </intent-filter>
</activity  >

android:name定义的就是setAction()中的内容
其中的
<data android:scheme="tel" />
指定的是模式,在setData时要加上前缀就是这个

10-16 14:44:28.849: I/ActivityManager(161): START {act=android.intent.action.VIEW dat=tel:xxx cmp=com.android.contacts/.activities.DialtactsActivity u=0} from pid 1542
public void call(View view) {
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        intent.setData(Uri.parse("tel:110"));
        this.startActivity(intent);
}