动态设置默认Home应用

时间:2010-10-20 18:03:41

标签: android

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

3 个答案:

答案 0 :(得分:5)

  

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

没有。没有公开的API。

  

如果那是不可能的,我是否可以至少重置当前默认设置,以便选择器窗口重新出现?

仅当您实施的主屏幕是当前默认设置时。

  

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

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

答案 1 :(得分:1)

  

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

这不可能是真的......应用程序“Toddler Lock”找到了解决这个问题的方法。我测试了它如下:

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

    1. 安装幼儿锁
    2. 在没有提示用户的情况下,Toddler Lock将自己设置为默认的“Home”应用程序,因此已清除设置
    3. 关闭幼儿锁并将其自身删除为默认状态,不再提示
    4. 现在也许这篇文章发生了一些变化......但据我所知,Toddler Lock自从获得API ver 1.5以来一直存在并且始终能够做到这一点。这不会打扰我,因为该应用程序提供了一个很棒的功能,但我想知道如何在我的应用程序中完成此任务。

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

答案 2 :(得分:-1)

我说这听起来不像听起来那么难。我一直在努力想办法自己做这件事。我知道这个帖子已经老了,但是因为它仍然是开放的,我会给出答案。

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

基本上,我刚刚创建了一个带有TskrFactory的shell,其中一个弹出窗口将所有我的家用发射器保存为快捷方式(但是想办法让它们在运行时可以进行用户修改,但对于yall应该很容易,不是吗?)。基本上只是一个美化的变量/快捷方式......无论选择哪个启动器都会变成%var - 一旦它被清除,下一次主页按下会再次显示提示。从技术上讲,它是home2,是默认的家。原则,我敢肯定,但仍然有效。概念证明,如果没有别的。