java - 如何根据位置获取应用程序的名称?

标签 java android reverse-engineering

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

我知道如何使用一些数学和窗口管理器创建 float 图标,但不知道如何获取放置 float 图标的应用程序的名称。我想到了一些方法来归档它,但不知道如何实现......

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

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

帮我归档这个任务。请告诉我如何获取主页上启动图标(如facebook、google play)的位置。如果您能建议我其他方法来做到这一点,那也会非常有帮助。

I know this can be done because winners of techcrunch hackathon have made the same application. A short video of this can be found here, in case you might want to look, http://techcrunch.com/2015/09/20/disrupt-sf-2015-hackathon-winners/

最佳答案

i don't know how to get the position of launching icons on the homepage.

这通常是不可能的,也许除了可访问性 API 之外。

请记住,目前有超过 10 亿台 Android 设备在使用。这些跨越了数千种设备型号,代表了数百或数千种主屏幕实现。用户还可以安装第三方主屏幕实现(例如,来自 Play 商店)并使用它们。

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

不要求主屏幕具有某种 API,只要在该主屏幕的任意部分上给出一些 X/Y 坐标,就会告诉您一个由该 X/Y 坐标处的视觉内容表示的应用程序.

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

关于java - 如何根据位置获取应用程序的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32718431/

相关文章:

java - launch4j生成的exe第一次启动缓慢

java - quarkus-maven-plugin 不会将实现条目添加到 MANIFEST

java - Android 返回键问题

android - 工具栏 vs appcompat v7-21 工具栏

android - [Android][加密]声明加密类型时如何避免使用字符串

java 使用发送模式的对象创建文件名

java - 使用 JPA 保留 Map<Integer,Float>

java - 如何反转这个等式?

windows - 如何转储可执行文件的所有函数名称?

linux - 从调试器隐藏系统调用