ADB可用于发送广播意图,例如:
adb shell am broadcast -a com.whereismywifeserver.intent.TEST --es sms_body“从adb测试”
其中:-a
是操作,-es
是额外的字符串。我的想法是动作参数是必要的,因为意图接收器使用它来使用(意图过滤器)接收意图。但是,我注意到我们可以发送意图而不指定操作,例如:
adb shell am broadcast -n com.google.android.deskclock / com.android.deskclock / com.android.deskclock.AlarmInitReceiver
为什么这是可能的?这不是一个空洞的意图吗?以及这种事情的任何应用?
答案 0 :(得分:1)
不是空意?
没有。 -n
创建一个明确的Intent
,用于标识应用程序ID(com.google.android.deskclock
)和组件(com.android.deskclock.AlarmInitReceiver
)。使用显式Intent
直接将Intent
传递给指定的组件;在你的情况下,通过广播。
以及此类事情的任何应用?
明确的Intents
在Android中广泛使用,甚至可能比隐式Intents
更常见。例子包括:
点按主屏幕启动器图标(startActivity()
,带有明确的Intent
)
JobService
和其他专门的服务类(bindService()
带有明确的Intent
)
ACTION_MY_PACKAGE_REPLACED
(sendBroadcast()
明确Intent
)