gpt4 book ai didi

安卓移动控制

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:17:56 25 4
gpt4 key购买 nike

我不想做广告,但我的应用程序行为的示例应用程序是 ESET 防病毒软件。

我的应用程序的一个请求功能是卸载需要密码。我将我的应用程序添加到设备管理员列表,现在无法卸载它。但是您可以将 Deactive 应用程序作为管理设备。当您转到“设置”>“位置和安全”>“选择设备管理员”并尝试停用 ESET Security 时,它会启动 Activity (我猜来自 DeviceAdminReceiver.onDisableRequested()),该 Activity 正在等待密码并且您的手机已锁定。主页按钮、后退按钮甚至 SwitchOff 按钮都没有反应=>

Home、Back、SwitchOff 和 Camera 按钮怎么可能没有反应?

编辑 - 删除第二个问题(在我从手机中取出电池后 - ESET 也不是设备管理员)

谢谢你的想法。

最佳答案

好的,对不起 ESET,但这个功能看起来很有趣,所以我查看了反编译源:)

基本工作流程如下:

  • com.eset.ems.antitheft.receiver.AdminReceiver DeviceAdminReceiver 的子类注册了广播操作 DEVICE_ADMIN_ENABLEDDEVICE_ADMIN_DISABLED
  • 当设备管理员被禁用时 com.eset.ems.antitheft.receiver.AdminReceiver.onDisabled() 被调用
  • com.eset.ems.antitheft.LockActivityAdminReceiver.onDisabled()
  • 开始
  • LockActivity 显示 com.eset.ems.antitheft.LockingDialog 最阻塞魔法发生的地方

至于主页和其他按钮阻止杀毒软件做以下技巧 - 它使用 ActivityManagerNative来自安卓内部。为了将 LockActivity 保持在所有其他 Activity 的顶部,它会启动一个线程,该线程不断调用 ActivityManagerNative.moveTaskToFront()LockActivity 任务 ID。在 API 级别 10 之前,反射用于从 ActivityManager 访问隐藏的 moveTaskToFront()类,在 API 10 之后,它只使用来自 Android 代码库的 ActivityManagerNative 代码来访问它。LockActivityLockingDialog 也多次调用 ActivityManagerNative.closeSystemDialogs() 方法。这样做可能是为了取消长按电源按钮后出现的系统对话框。

至于DeviceAdminReceiver.onDisableRequested的停止执行其实我并没有在代码中注意到它有什么特别之处。它仅在设备管理员被禁用后才开始 Activity ,仅此而已。在我取出电池后,我的手机设备管理员被禁用。

关于安卓移动控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11951865/

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