使用adb shell命令接收推送通知

时间:2014-10-29 08:30:01

标签: android adb

我正在尝试使用以下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

2 个答案:

答案 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"