2014-10-29 5 views
5

Staram się odbierać powiadomienia push na urządzeniu, za pomocą polecenia adb shell poniżej:Odbieranie powiadomień push przy użyciu polecenia adb shell

adb shell am broadcast -c com.xxxx.android -a com.google.android.c2dm.intent.RECEIVE -e data "Data" 

Ale ja nie otrzymuję żadnych wiadomości Push lub błędów.

To wyjście uzyskać:

Intent { act=com.google.android.c2dm.intent.RECEIVE cat=[com.myapp] (has extras) } Broadcast completed: result=0 

Odpowiedz

8

Oto podstawowe zastosowanie polecenia adb transmisji:

adb shell am broadcast 
-a <INTENT_NAME> 
-n <PACKAGE_NAME>/<RECEIVER_NAME> 
[--ei <EXTRA_KEY> <EXTRA_INT_VALUE>] 
[--es <EXTRA_KEY> <EXTRA_STRING_VALUE>] 
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>] 
[--el <EXTRA_KEY> <EXTRA_LONG_VALUE>] 
[--ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE>] 
[--eu <EXTRA_KEY> <EXTRA_URI_VALUE>] 
[--ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>] 
[--e*a <EXTRA_KEY> <EXTRA_*_VALUE>[,<EXTRA_*_VALUE...]] 

I można znaleźć RECEIVER_NAME w AndroidManifest. xml:

<receiver 
    android:name="foo.bar.SomeBroadcastReceiver" 
    android:exported="true" 
    android:permission="com.google.android.c2dm.permission.SEND"> 
    <intent-filter> 
     <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
     <category android:name="xyz.abc" /> 
    </intent-filter> 
</receiver> 

Przykładowe polecenie:

adb shell am broadcast -a com.google.android.c2dm.intent.RECEIVE -n <YOUR_PACKAGE_NAME>/<YOUR_RECEIVER_NAME> --es "<EXTRA_KEY>" "<EXTRA_VALUE>" 
0

Zastosowanie powinny stosować klucz -n zamiast -c.

Klawisz -c jest kluczem kategorii.

[-c <CATEGORY> [-c <CATEGORY>] ...] 

Użyj polecenia:

adb shell am broadcast -m com.myapp -a com.google.android.c2dm.intent.RECEIVE -e key "data"