Intent似乎没有数据,是否有任何应用程序?

时间:2017-05-10 15:39:09

标签: android android-intent adb intentfilter

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

为什么这是可能的?这不是一个空洞的意图吗?以及这种事情的任何应用?

1 个答案:

答案 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_REPLACEDsendBroadcast()明确Intent