I've been digging for awhile into the source of the Contacts app on Android to find out which Activity handles Intent.ACTION_CALL_PRIVILEGED
. Unfortunately, I couldn't find its source code. Does anyone know how it's called, or even better where I can find it's source? Thank you!
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Oddly enough, the Phone application handles call-related events. ;)
You can watch ActivityManager
output in logcat to see which component handles a particular Intent
.
From the Contacts source code:
Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
Uri.fromParts("tel", number, null));
startActivity(intent);
You can reproduce this Intent
on the command line:
adb -e shell am start -a android.intent.action.CALL_PRIVILEGED -d tel:12345
Which results in the following (nicely-formatted) logcat output:
Starting activity: Intent { act=android.intent.action.CALL_PRIVILEGED dat=tel:12345 flg=0x10000000 cmp=com.android.phone/.PrivilegedOutgoingCallBroadcaster }
This shows you that the com.android.phone
application handles this particular Intent
.