带有用户 ID 的 adb 广播

adb broadcast with user ID

我正在尝试向广播接收器广播 adb 命令。这将是一项非常简单的任务,但是 braodcast-receiver 具有:

android:exported="false"

官方 android.developer 网站上写着:

If "false", the only messages the broadcast receiver can receive are those sent by components of the same application or applications with the same user ID.

所以我正在尝试将用户 ID 添加到广播中。我现在的方法是以下 adb 命令:

> adb shell am broadcast -a com.example.action -n com.android.package/.receiverName --user "User_ID"

我在 Windows 下的 cmd 中得到 Error: Invalid int: "User_ID"。这个app是一个System-app,更准确的说,是默认的Phone-App。我以为 Adb 命令默认是系统广播。我的问题是:有没有办法通过广播发送用户 ID 或访问未导出的操作?清单的 User_ID 和 am 广播的 User_ID 之间可能有区别吗?提前致谢

P.S:我没有任何 root 访问权限,因为它应该适用于很多设备而无需 root 所有人。作为最终结果,我想接受传入的视频通话作为音频通话。

用户完全不同。

android网站中的第一个"user"是linux系统中的用户id,如root,system,u0_a58(10058)。每个 APK 都有它的用户 ID,除非在共享 UID 条件下。

am 命令中的第二个 "user" 是用户代表使用此 phone 的人,例如管理员、来宾。
(您可以在 Android 选项卡中添加来宾用户,但由于某些法律问题,您不能在 Android phone 中添加访客用户。)

答案:无法从非根 shell 或第三个 APK 访问未导出的组件。