【问题标题】:Set default Home app dynamically动态设置默认 Home 应用
【发布时间】:2012-08-28 09:27:30
【问题描述】:

我可以在一个活动中动态设置当我按下 Home 键时要启动的首选/默认应用程序吗?如果这不可能,我至少可以重置当前默认值以便重新出现选择器窗口吗?我试图通过调用 PackageManager.clearPackagePreferredActivities("com.android.launcher") 来实现后者,但这似乎没有做到(我给了我的活动 SET_PREFERRED_APPLICATIONS 权限)。

【问题讨论】:

    标签: android


    【解决方案1】:

    我可以在一个活动中动态设置当我按下 Home 键时要启动的首选/默认应用程序吗?

    没有。没有公开的 API。

    如果这不可能,我至少可以重置当前默认值以便重新出现选择器窗口吗?

    仅当您正在实施当前默认的主屏幕时。

    我尝试通过调用 PackageManager.clearPackagePreferredActivities("com.android.launcher") 来实现后者

    正如该方法的文档所述,“应用程序只能清除自己的包。”。

    【讨论】:

      【解决方案2】:

      应用程序只能清除自己的包。

      这不可能是真的......“幼儿锁”应用程序已经找到了解决这个问题的方法。我已经对其进行了如下测试:

      1. 安装幼儿锁
      2. 打开幼儿锁
      3. 选中“设为默认值”
      4. 默认选择其他应用(不是 Toddler Lock)
      5. 再次打开幼儿锁
      6. 尽管我已经选择了另一个应用程序作为默认应用程序,但系统再次提示我选择默认值,这意味着 Toddler Lock 已清除用户定义的另一个应用程序的默认值
      7. 关闭应用程序,现在 Toddler Lock 将自己从默认状态中移除
      8. 如果在 Toddler Lock 关闭时(仅限第一次)存在多个“Home”应用程序,则在您下次按“Home”时,系统会提示您选择默认的“Home”应用程序。这再次证明该设置可以被第三方应用删除

      在 2.2 之前的 Android 版本中:

      1. 安装幼儿锁
      2. 在没有提示用户的情况下,Toddler Lock 将自己设置为默认的“主页”应用,因此已清除设置
      3. 关闭幼儿锁,它会再次将自己删除为默认值,没有提示

      现在也许自从这篇文章以来发生了一些变化……但据我所知,Toddler Lock 从 API 版本 1.5 开始就已经存在并且一直能够做到这一点。这并不困扰我,因为该应用程序提供了很棒的功能,但我想知道如何在我的应用程序中实现这一点。

      注意:安全性至少有所提高,因为现在用户第一次需要选择“默认应用程序”。甚至开发人员在第一次使用时在他的应用程序中声明,自 API 版本 2.2 以来就存在新要求

      【讨论】:

      • 你有没有发现幼儿锁是如何做到这一点的?我也有类似的要求。
      【解决方案3】:

      我的意思是,这并不像听起来那么难。我一直在努力想办法自己做到这一点。我知道这个帖子很旧,但由于它仍然是开放的,我会给出我的答案。

      遗憾的是,我不知道自己在做什么(不是真正的程序员),所以我还没有编写一个原始应用程序来执行此操作。无论如何,我已经设法用 Tasker App Factory 和 Home2 Shortcut 复制了预期的效果......使用 Target as Home(另一个 mrkt 应用程序)可能会比 home2 取得更好的结果,但我还没有尝试过。

      基本上,我刚刚使用 TskrFactory 创建了一个 shell,其中包含一个弹出窗口,其中包含我所有的家庭启动器作为快捷方式(尚未找到一种方法让它们在运行中可供用户修改,但对你们来说应该很容易, 不?)。基本上只是一个美化的变量/快捷方式......无论选择哪个启动器都会成为 %var - 一旦它被清除,下一次主页按下会再次显示提示。从技术上讲,home2 是默认主页。原始的,我敢肯定,但仍然有效。一个概念证明,如果没有别的。

      【讨论】:

        猜你喜欢
        • 2019-04-14
        • 2018-04-11
        • 1970-01-01
        • 1970-01-01
        • 2011-05-14
        • 2013-01-20
        • 1970-01-01
        • 2011-11-03
        • 1970-01-01
        相关资源
        最近更新 更多