2011-08-03 40 views
3

我想要做的是复制ToddlerLock应用程序的功能。我已成功为用户检查“默认使用此行动” Home键与此如何解除clearPackagePreferredActivities(“com.android.launcher”);

Intent i = new Intent(); 
i.setAction(Intent.ACTION_MAIN); 
i.addCategory(Intent.CATEGORY_HOME); 
this.startActivity(i); 

清除默认启动与

PackageManager localPackageManager = getPackageManager(); 
localPackageManager.clearPackagePreferredActivities("com.android.launcher"); 

,然后打开启动选择对话框只要现在将用户发送到我的应用程序,从而基本上禁用它。
然后,当我退出我的应用程序并且用户必须选择一个新的默认家庭应用程序时,我使用“clearPackagePreferredActivities(”com.my_application“)”。

我的问题是我该如何选择默认的家庭应用程序(主要是在代码中为“com.android.launcher”包检查“默认使用此操作”复选框。这样用户并不总是有看到对话框每次打开时间和关闭我的应用程序。

我觉得,因为如果我期待在应用程序管理器“清默认值”,它也不会被清除ToddlerLock莫名其妙地做到这一点,而无需使用clearPackagePreferredActivities ,你只需要在启动时经过一次设置为默认对话框,并且在退出时将其设置回正常主屏幕。

T为你提供帮助。

回答

5

我以不同的方式实现了相同的功能。

  • 比方说,您已将'LockScreenAcitivity'配置为Manifest中的主屏幕。
  • 通过发送Home Intent启动LockScreenActivity。
  • Android将弹出一个对话框,选择默认胡亚蓉
  • 从列表中选择您的LockScreenActivity为默认活动
  • .....
  • .....
  • 同时关闭活动别t清除优先活动。
  • 通过调用PackageManager.setComponentEnabledSetting()来禁用你的LockScreenActivity()
  • 当你禁用LockScreenActivity后,android会回滚到先前的首选活动(这是你的旧主屏幕)。

下一次,当您启动您的应用程序,

  • 通过调用PackageManager.setComponentEnabledSetting()
  • 启动LockScreenActivity通过发送首页意图再次启用您lockscreenActivity。
+0

这对我而言没有使用不推荐使用的函数addPreferredActivity。谢谢! –

+0

干得好帕拉尼。 – drc