如何通过ADB shell广播意向?

Val*_*lyo 10 shell android broadcast adb android-intent

我试图BATTERY_CHANGED通过ADB shell 发送意图.到目前为止,我只设法发送没有任何信息的意图:

am broadcast -a android.intent.action.BATTERY_CHANGED
Run Code Online (Sandbox Code Playgroud)

我创建了一个应用程序女巫侦听这个意图,这是系统每隔几秒发送一次:

#Intent;action=android.intent.action.BATTERY_CHANGED;launchFlags=0x60000010;i.icon-small=17302838;B.present=true;i.scale=100;i.level=100;S.technology=Li-ion;i.status=5;i.voltage=4155;i.invalid_charger=0;i.plugged=2;i.health=2;i.temperature=280;end
Run Code Online (Sandbox Code Playgroud)

当我播放意图我的应用程序显示:

#Intent;action=android.intent.action.BATTERY_CHANGED;launchFlags=0x10;end
Run Code Online (Sandbox Code Playgroud)

我的问题是如何通过adb shell一些属性/标志(如比例,状态,插入等)来广播意图?

Ale*_* P. 13

<INTENT>参数的格式都是一样的am像子start,startservicebroadcast.

它可以作为单独的像参数的组合来传递-a <ACTION>,-c <CATEGORY>,-n <COMPONENT>和不同的-e <EXTRA>用于不同类型的额外的或者作为单个URI格式化字符串:

am broadcast "intent:#Intent;action=android.intent.action.BATTERY_CHANGED;i.status=5;i.voltage=4155;i.level=100;end"
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你的回答.它完美地运作.与此同时,我找到了另一种可能的解决方案:`am broadcast -a android.intent.action.BATTERY_CHANGED --ez present false --ei state 2 --ee level 50` (8认同)