我正在尝试使用以下adb shell命令在我的设备上接收推送通知:
adb shell am broadcast -c com.xxxx.android -a com.google.android.c2dm.intent.RECEIVE -e data "Data"
但我没有收到任何推送消息或错误。
这是我得到的输出:
Intent { act=com.google.android.c2dm.intent.RECEIVE cat=[com.myapp] (has extras) } Broadcast completed: result=0
答案 0 :(得分:11)
以下是 adb broadcast 命令的基本用法:
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...]]
您可以在 AndroidManifest.xml 中找到 RECEIVER_NAME :
<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>
示例命令:
adb shell am broadcast -a com.google.android.c2dm.intent.RECEIVE -n <YOUR_PACKAGE_NAME>/<YOUR_RECEIVER_NAME> --es "<EXTRA_KEY>" "<EXTRA_VALUE>"
答案 1 :(得分:0)
使用时应使用键 -n 而不是 -c 。
键-c是类别键。
[-c <CATEGORY> [-c <CATEGORY>] ...]
使用命令:
adb shell am broadcast -m com.myapp -a com.google.android.c2dm.intent.RECEIVE -e key "data"