【问题标题】:clearPackagePreferredActivities exception with Android multi accountsAndroid 多帐户的 clearPackagePreferredActivities 异常
【发布时间】:2013-06-12 12:44:49
【问题描述】:

我正在尝试使用以下命令取消设置我的应用默认操作:

final PackageManager pm = getPackageManager();              
pm.clearPackagePreferredActivities( getPackageName() );

它适用于设备的主要帐户,但它会引发辅助帐户异常:

“用户 1010080 和当前进程都没有 android.permission.SET_PREFERRED_APPLICATIONS。”

当然我在清单中添加了android.permission.SET_PREFERRED_APPLICATIONS(但我认为它不再使用了)

我尝试用类似的方式“改变上下文”:

 final PackageManager pm = getApplicationContext().getPackageManager();
 pm.clearPackagePreferredActivities( getPackageName() );

没有成功。

我的应用程序是一个家庭应用程序(适用于儿童),它几乎锁定了所有内容,我想要一个“退出”按钮来恢复用户家(或至少选择家)。可能还有其他解决方案。

谢谢。

【问题讨论】:

  • 嗯...这很奇怪。我希望用户能够清除他或她自己的默认设置。对我来说,这感觉就像一个错误。如果没有其他人为您提出更具体的建议,您可能希望创建一个可重现的测试用例并在 b.android.com 上提交问题。
  • 谢谢。是的,用户应该能够清除他或她自己的默认设置。可能是我不在PackageManagerPackageName 的正确上下文中,不要指代辅助帐户的包或类似的东西......

标签: android user-accounts


【解决方案1】:

clearPackagePreferredActivities & addPackageToPreferred 自 API 级别 8 起已被 android 弃用。

设置首选活动的现代方法是启动一个意图,如下所示:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(intent);

【讨论】:

  • 是的 addPackageToPreferred 自 API 级别 8 起已弃用,但 clearPackagePreferredActivities 似乎不是。我的问题不是设置,而是将我的活动清除/取消设置为首选活动。 (clearPackagePreferredActivities 使用主 android 帐户完成工作,问题是从辅助帐户使用应用程序时)
  • 您提供的代码运行良好,但是一旦我从其对话框中选择(始终),下次它不会提示。每当用户需要更改家庭应用程序时,我都会提示它。
猜你喜欢
  • 2021-04-25
  • 1970-01-01
  • 2013-04-01
  • 1970-01-01
  • 2019-04-19
  • 2018-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多