【发布时间】:2011-04-21 07:27:28
【问题描述】:
我知道如果不转到系统偏好设置,您将无法在应用程序中打开 GPS。 但我已经下载了 GPS 开/关小部件,这个小部件可以完成这项工作。 我已经反编译了apk,以找出程序员是如何完成这项工作的,但没有成功,dex文件不显示代码,而是显示函数和信息。 想知道他是怎么做到的?
【问题讨论】:
-
哼;我从来没有关注过这个,我现在已经在许多主题中标记了已接受的答案:)
我知道如果不转到系统偏好设置,您将无法在应用程序中打开 GPS。 但我已经下载了 GPS 开/关小部件,这个小部件可以完成这项工作。 我已经反编译了apk,以找出程序员是如何完成这项工作的,但没有成功,dex文件不显示代码,而是显示函数和信息。 想知道他是怎么做到的?
【问题讨论】:
【讨论】:
如果他发布了源代码,您可以查看源代码。有时人们将他们的代码托管在 GIT 上,您可以浏览他们的整个项目。具体来说,除非您熟悉使用 dalvik 反编译代码。那么这是一条棘手的路线。
如果您想切换 GPS,只需让您的小部件激活一个切换 GPS 的 Activity,该 Activity 通过将小部件的状态通过 Intent 传递给该 Activity 来切换 GPS。然后让您的 Activity 解析它,然后自行关闭。
但是;我更愿意通过服务来完成,这是一个没有 UI 的活动。此服务可以与您的应用程序一起启动,当接收到特定广播时,然后执行某些功能,该功能将通过您的小部件触发。
具体来说,您需要研究一种类型的广播收听。有一个基于 XML 的意图过滤器,它将立即将这些特定的广播发送到您的应用程序,可以相应地进行处理。
例如,假设您的小部件是一个带有标题的切换按钮。当您切换按钮时,您的小部件代码会使用切换按钮的状态向您的服务发送带有意图的广播。然后在服务中,您将控制 GPS 或手机上任何其他组件的状态。
【讨论】: