当前位置: 首页 > 知识库问答 >
问题:

与来自ADB Shell的android通知操作交互

璩无尘
2023-03-14
actions={
        [0] "Reply" -> PendingIntent{6becf48: PendingIntentRecord{87b8050 com.whatsapp startService (whitelist: +30s0ms)}}
        [1] "Mark as read" -> PendingIntent{c1661e1: PendingIntentRecord{b8e3249 com.whatsapp startService (whitelist: +30s0ms)}}
      }

下面是我发现的可能与这个问题有关的内容。

我认为我必须以某种方式启动链接到提到的PendingIntent id的特定意图(在本例中为6BECF4887B8050)

使用命令adb shell dumpsys activity intents>output.txt,然后在output.txt中搜索87B8050,我找到了意图的名称。其内容如下:

  * PendingIntentRecord{87b8050 com.whatsapp startService (whitelist: +30s0ms)}
    uid=10104 packageName=com.whatsapp type=startService flags=0x0
    requestIntent=act=com.whatsapp.intent.action.DIRECT_REPLY_FROM_MESSAGE dat=content://com.whatsapp.provider.contact/contacts/2256 cmp=com.whatsapp/.notification.DirectReplyService (has extras)
    whitelistDuration=+30s0ms

(就像我们可以使用am命令从adb启动Whatsapp,也应该可以启动pendingIntent。)

共有1个答案

叶修永
2023-03-14

无法从非根ADB访问未导出的组件。

理论上,您可以运行此代码来执行“reply”操作:

adb shell am startservice --user 10104  \
  -a "com.whatsapp.intent.action.DIRECT_REPLY_FROM_MESSAGE" \
  -d "content://com.whatsapp.provider.contact/contacts/2256" \
  -n "com.whatsapp/.notification.DirectReplyService" \
  --es extra_key extra_string_value
  com.whatsapp

--用户-用户uid,
-a-来自requestintent.act
-d-来自requestintent.dat
-n-来自requestintent.cmp
的组件--ES EXTRA_KEY extra_string_value-应用程序应接受的额外键/值。它是可选的,并且在应用程序中定义,实际上该操作接受额外的键,请参见(Hast extras),它取决于应用程序,可能在应用程序文档中

 类似资料:
  • 但我收到一条错误消息:

  • 问题内容: 我正在尝试在收到C2DM消息时显示一个简单的通知。服务提供给UI,但仍在主线程上运行。我见过有人声称您可以通过服务创建和显示通知。 } 我不知道为什么会抛出该异常。 问题答案: 首先,引发异常是因为创建的通知没有引用该对象的视图对象(contentView属性设置为null)。您必须在显示通知之前调用setLatestEventInfo。 其次,不赞成使用您使用的构造函数。请使用Not

  • 是否可以对来自NotificationListenerService的通知以编程方式调用操作?我已经编写了一个通知侦听器服务,它读取所有传入的通知,并在完成后将其解散。但我不确定是否可以对传入的通知执行任何操作。 例如:在WhatsApp消息通知上,我可以读取包名、发件人和消息的详细信息,但有没有办法将回复发送给发件人?目前,Android Wear正在这样做,所以我想知道它是否遵循了一种根据通知

  • 当我向设备发送推送通知时,我收到了可怕的“程序包”com.mycompany.applicationame“的开发人员警告未能在频道”null“上发布通知”Toast消息。我正在运行Android API 27。下面是我的代码: Logcat消息:

  • 我做了,有一个按钮,我想在通知和按钮点击上执行两个不同的

  • 我们将通知服务从服务器转移到社交网站。我们跟踪了AWS文档。我们能够成功设置iOS通知。 但是当发送到android时,设备上没有收到任何内容。我们目前在我们的实时服务器上使用相同的密钥设置了应用程序,我们使用设备数据库上活动的设备哈希添加了一个endpoint。我们正在尝试从SNS面板发送消息,但我们的android设备上没有收到任何消息! 要使用Amzon SNS设置一个有效的GCM,我们可能