10

我正在尝试BATTERY_CHANGED通过 ADB shell 发送意图。到目前为止,我只设法发送没有信息的意图:

am broadcast -a android.intent.action.BATTERY_CHANGED

我创建了一个应用程序来监听这个意图,这是系统每隔几秒发送的内容:

#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

当我广播意图时,我的应用程序会显示:

#Intent;action=android.intent.action.BATTERY_CHANGED;launchFlags=0x10;end

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

4

1 回答 1

13

所有子命令(如,和)的<INTENT>参数格式都相同。amstartstartservicebroadcast

它可以作为单独参数的组合(如-a <ACTION>,-c <CATEGORY>-n <COMPONENT>different-e <EXTRA>用于不同类型的附加功能)或作为单个URI格式化字符串传递:

am broadcast "intent:#Intent;action=android.intent.action.BATTERY_CHANGED;i.status=5;i.voltage=4155;i.level=100;end"

还要确保在交互式adb shell会话之外运行时正确转义命令:

adb shell "am broadcast 'intent:#Intent;action=android.intent.action.BATTERY_CHANGED;i.status=5;i.voltage=4155;i.level=100;end'"
于 2013-07-18T11:54:02.887 回答