gpt4 book ai didi

java - 可以使用java以编程方式接收android广播吗?

转载 作者:行者123 更新时间:2023-12-01 11:51:45 26 4
gpt4 key购买 nike

假设我有一个名为“MyFirstApp”的 Android 应用程序,它可以广播消息,并且可以在 Google Play 商店中使用/注册/部署。
我无权对应用程序进行任何修改。

现在,我可以通过 java 程序(或网络服务)检测应用程序是否已向其接收者广播消息吗?
我可以访问广播的消息吗?
是否有任何端口或 URL 或任何可以为我提供此类数据的东西?

换句话说,我想要的是直接在我的 java 程序/服务中通过应用程序获取广播,而不是通过在我的移动设备上安装该应用程序。

可能吗?
我没有尝试任何黑客攻击,只是出于学习目的。

最佳答案

Intent 在设备上发送 - 它们不会“广播”到网站。所以你的问题很模糊,因为你是在问你是否可以

get the broadcasts by an app directly in my java program/service and not by installing the app on my mobile device

如果是java程序,它安装在哪里?假设您指的是其他人设备上的另一个应用程序,该应用程序可以在安装它的设备上监视一些广播,但不是全部。

Intent 可能需要权限才能被接收。如果您正在监控的应用程序具有自定义权限,那么除非您请求并获得许可,否则您的应用程序将不会收到 Intent 广播。

其次,您的应用程序不会检测到特定于组件的 Intent 。如果 Intent 向特定组件(包/对象对)发送 Intent ,则该 Intent 只会被该组件接收。

最后,使用您的应用未注册处理的特定操作/类别/数据组合发送的广播将不会被您的应用接收。

要确定应用程序有兴趣接收哪些类型的 Intent ,您可以查看 list 。对于现有应用程序,可以通过多种方式查看和/或解析 list 。当您查看 list 时,您将看到具有 Intent 过滤器的所有 Activity/接收者/服务以及接收 Intent 所需的任何权限。但是,您将不知道是否正在发送组件 Intent (并且无论如何您都无法监视它们)。

警告:创建使用某些类型的操作/权限来执行类似操作的应用程序可能会干扰用户体验。例如,尝试监视启动网站的 Intent 将包含“http”数据类型,这将使​​您的应用程序显示在用户的网络浏览器的“选择器”中。

编辑:

由于您的问题询问的是“网络服务”,因此答案基本上是 - 发送到接收方的消息仅在设备上广播。它们不通过任何 TCP/HTTP 进程发送。有时,消息是使用 GCM 或其他 Web 服务发送的,但通常这些消息是特定于组件的,并且需要监视权限(在网络上或在设备上)。换句话说,您必须在网络服务和/或设备上拥有与广播消息的应用程序相同的权限。唯一的异常(exception)是当应用程序使用非安全广播服务并且您有方法访问该服务时(这可能仍然需要您在设备上安装某些内容来进行监控 - 消息将通过 URL 上的路由进行路由)如果不攻击 Web 服务本身,Web 和您的 Web 服务将不会收到任何消息指示)。

关于java - 可以使用java以编程方式接收android广播吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28762750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com