2013-07-18 15 views
8

Próbuję wysłać intencję BATTERY_CHANGED przez powłokę ADB. Do tej pory mam tylko udało się wysłać intencję bez informacji:Jak transmitować intencje z dodatkami przez powłokę ADB?

am broadcast -a android.intent.action.BATTERY_CHANGED 

utworzonego aplikacja czarownica słucha tej intencji i tutaj jest to, co system wysyła co kilka sekund:

#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 

Kiedy nadawanie intencją moją aplikacja pokazuje to:

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

Moje pytanie brzmi jak mogę nadawać intencję przez adb shell z niektórymi z tych właściwości/flagi (jak skali, statusu, wtyczka Ged, itp.)?

Odpowiedz

10

<INTENT> Format parametr jest taka sama dla wszystkich am podpoleceń jak start, startservice i broadcast.

To mogłoby być przekazywane jako połączenie oddzielnych parametrów jak -a <ACTION>, -c <CATEGORY>, -n <COMPONENT> i innym -e <EXTRA> dla różnych rodzajów dodatków lub jako pojedynczy URI sformatowany ciąg:

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

Dzięki za odpowiedź. Działa idealnie. W międzyczasie znalazłem inne możliwe rozwiązanie: 'jestem transmisją -a android.intent.action.BATTERY_CHANGED - przedstawiam false --ei stan 2 --ei poziom 50' – Valyo

+1

Odpowiedź, która nie pasowała do mnie, ale Valyo's komentarz tutaj działał. Musisz również znaleźć się w powłoce adb, więc jeśli jesteś w commadnline, po prostu dodaj polecenie "shell adb" do polecenia tutaj. –

+0

@Valyo comment pomógł, ale musiałem zmienić dodatki do am broadcast -a android.intent.action.BATTERY_CHANGED - przedstawiamy false --ei state 2 --ei level 50 – PSIXO

Powiązane problemy