我有一部 Android(7) 手机和一台 Linux 电脑。通过启用 USB 调试并使用我的电脑终端,我可以使用以下命令读取手机的通知:
adb shell dumpsys notification --noredact
现在,在 android 中有一些通知,我们可以直接从通知中与应用程序进行交互。例如,在 Whatsapp 通知中,通常有两个按钮:回复和标记为已读。在 YouTube 中,有播放、关闭、稍后观看等选项。在上述命令的输出中,这些选项以下列形式显示:
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)}}
}
我有两个问题:
我们可以从 adb shell 与这些选项进行交互吗?例如,是否有任何命令
adb shell <SOME COMMAND> 'Message to be sent in whatsapp with reply option'
可以在不打开应用程序的情况下在 whatsapp 中将文本作为回复发送?是否可以使用任何 adb 命令滑动通知?(不是
adb shell input swipe x0 y0 x1 y1
,每次都需要解锁手机)
先感谢您!
编辑:
这是我发现的可能与这个问题有关的内容。
我认为我必须以某种方式启动与提到的 PendingIntent id 相关联的特定意图(在这种情况下6becf48
或87b8050
)
使用命令adb shell dumpsys activity intents > output.txt
然后搜索87b8050
in output.txt
,我找到了意图的名称。情况如下:
* 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
现在我认为可以com.whatsapp.intent.action.DIRECT_REPLY_FROM_MESSAGE
使用adb shell am
命令启动意图,并将意图 id 和消息作为一些参数传递。
(就像我们可以使用am
命令从 adb 启动 Whatsapp 一样,也应该可以启动 pendingIntent。)