Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
914 views
in Technique[技术] by (71.8m points)

android - How to broadcast intent with extras through ADB shell?

I am trying to send the BATTERY_CHANGED intent through the ADB shell. So far I only managed to send the intent with no information:

am broadcast -a android.intent.action.BATTERY_CHANGED

I created an app witch listens for this intent and here is what the system sends every few seconds:

#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

When I broadcast the intent my app shows this:

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

My question is how can I broadcast the intent through the adb shell with some of these properties/flags (like scale, status, plugged, etc.)?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

The <INTENT> parameter format is the same for all am subcommands like start, startservice and broadcast.

It could be passed as a combination of separate parameters like -a <ACTION>, -c <CATEGORY>, -n <COMPONENT> and different -e <EXTRA> for different types of extras or as a single URI formatted string:

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

Also make sure to properly escape the command when running outside of the interactive adb shell session:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...