【问题标题】:How to get the name of the app by position?如何按位置获取应用程序的名称?
【发布时间】:2015-12-19 12:33:26
【问题描述】:

我只是在创建一个快速应用程序,其中主页上有一个浮动图标,用户只需将该图标拖放到应用程序中,然后它就会显示一个警报窗口。

我知道如何使用一些数学和窗口管理器创建浮动图标,但不知道如何获取放置浮动图标的应用程序的名称。想了一些办法存档,但是不知道怎么实现....

通过在 ACTION_UP 触发发生时获取触摸的位置,然后通过将其与位置进行比较来检查应用程序是什么。

但是这种方式有一个问题,因为我不知道如何获取启动图标在首页的位置。

帮我存档这个任务。请告诉我如何在主页上获得启动图标(如 facebook、google play)的位置。如果你能建议我做这件事的其他方法,那也会很有帮助。

我知道这是可以做到的,因为 techcrunch 黑客马拉松的获胜者拥有 做了同样的申请。可以在这里找到一个简短的视频,在 你可能想看的案例, http://techcrunch.com/2015/09/20/disrupt-sf-2015-hackathon-winners/

【问题讨论】:

    标签: java android reverse-engineering


    【解决方案1】:

    我不知道如何获取启动图标在首页的位置。

    这在一般情况下是不可能的,也许除了可访问性 API。

    请注意,有超过 10 亿台 Android 设备在使用中。这些跨越数千种设备模型,代表成百上千的主屏幕实现。用户还可以安装第三方主屏幕实现(例如,从 Play 商店)并使用它们。

    不要求主屏幕具有满足您期望的“启动图标”。例如,我可以编写一个主屏幕,其应用程序启动器包含文本超链接。或者,我可以编写一个设计为供外部键盘使用的主屏幕,其中启动应用程序是由按键而不是图标触发的。

    不要求主屏幕具有某种 API,如果给定主屏幕任意部分上的某个 X/Y 坐标,它会告诉您应用在该 X/Y 坐标处由视觉对象表示.

    欢迎您尝试使用辅助功能 API 在当前屏幕上所需的 X/Y 坐标处查找小部件的详细信息。但是,从那里,您将不得不猜测这是否是启动器图标,如果是,它将代表什么应用程序。除了您硬编码的特定场景外,这种方法可能不可靠。根据 TechCrunch 网站上的散文,硬编码是您引用的团队似乎已经完成的工作。

    【讨论】:

    • 感谢您的回答。有没有办法有人可以得到主页的截图
    • @Hudixt:在 Android 5.0+ 上,您可以为此使用媒体投影 API,但用户必须通过弹出窗口同意允许您的应用截取屏幕截图。但是,您无法知道“主页”在前台,并且出于隐私和安全原因,试图获取此信息的各种黑客攻击不断被破解。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    相关资源
    最近更新 更多