因此,我正在尝试许多人以前尝试过的方法:创建一个不响应主页按钮的应用程序。我在SO上看过很多类似的问题,但没有一个能像我希望的那样工作。
我尝试过的一件事是让我的应用程序本质上成为另一个启动器。(注意:需要少量的用户输入才能使其工作。)
从我的应用程序清单中:
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.HOME" />我还禁用了后退按钮,并将启动模式设置为“singleInstance”。
我认为Toddler Lock做了类似的事情,但我的实现不是完全相同的方式。使用我的实现,我的应用程序无限期地作为默认的主启动程序存在,包括在应用程序退出之后。有没有办法在应用程序清单之外的地方声明相同的行为,在那里它可以临时打开,或者在应用程序退出时关闭?
Car Home也做了类似的事情,而且实际上比蹒跚学步的锁做得更好。我不确定它是如何做到的(可能它有更多的权限,因为它是一个本机应用程序),但它设法做同样的事情,而不需要用户接受备用启动程序或选择该应用程序作为默认启动程序。有谁知道它是怎么做到的吗?
发布于 2011-06-14 02:23:41
hackbod基本上是正确的。我已经得到了很多想要的行为,通过
唯一的问题是,capture home键活动实际上应该做什么。在我的例子中,我需要它直接转到应用程序的开头...因此,它生成一个CATEGORY_HOME意图,测试它是否正确解析,如果是这样,就将其转发到应用程序。如果它不能正确解析,它会通知用户,等待用户准备好,然后使用该意图。这样,如果用户选择了你的应用程序,但没有将其设为默认应用程序,他将再次得到提示。
发布于 2011-06-12 10:34:57
要在用户将您的应用程序作为主应用程序启用后禁用此功能,请使用PackageManager.setComponentEnabledSetting()禁用该活动。注意:这意味着覆盖主页的活动不应该是你的应用程序的主要活动,否则一旦禁用它,用户将无法返回你的应用程序。
CarHome是非常不同的--当Android处于不同的用户界面模式时(在汽车模式下或者在办公桌模式下),当用户按下home键时,就会启动一个不同的意图,这样他们就可以在那个环境中拥有一个不同的“家”。如果你不是在写一个汽车模式的主屏幕,你不应该使用这个。
https://stackoverflow.com/questions/6319060
复制相似问题