我可以在活动中动态设置当我按Home键时要启动的首选/默认应用程序吗?如果那是不可能的,我是否可以至少重置当前默认值,以便选择器窗口重新出现?我尝试通过调用PackageManager.clearPackagePreferredActivities(“com.android.launcher”)来实现后者,但这似乎没有(我给了我的活动SET_PREFERRED_APPLICATIONS权限)。
答案 0 :(得分:5)
我可以在活动中动态设置当我按Home键时要启动的首选/默认应用程序吗?
没有。没有公开的API。
如果那是不可能的,我是否可以至少重置当前默认设置,以便选择器窗口重新出现?
仅当您实施的主屏幕是当前默认设置时。
我尝试通过调用PackageManager.clearPackagePreferredActivities(“com.android.launcher”)来实现后者
正如该方法的文档所述,“应用程序只能清除自己的软件包。”。
答案 1 :(得分:1)
应用程序只能清除自己的软件包。
这不可能是真的......应用程序“Toddler Lock”找到了解决这个问题的方法。我测试了它如下:
在2.2之前的Android版本中:
现在也许这篇文章发生了一些变化......但据我所知,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,是默认的家。原则,我敢肯定,但仍然有效。概念证明,如果没有别的。