api21上的addPersistentPreferredActivity

时间:2015-02-13 16:44:26

标签: android android-activity android-5.0-lollipop device-policy-manager

我正在尝试将持久性活动添加到意图过滤器,我是个人资料所有者和设备所有者,这已经过验证,我没有安全例外,但我的活动仍未中断通话,不知道下一步该怎么做......请帮忙

ComponentName adminComponent = new ComponentName(getApplicationContext(), EnforcerDeviceAdminReceiver.class);
ComponentName handlerComponent = new ComponentName(getApplicationContext(), HandlerActivity.class);

devicePolicyManager.clearPackagePersistentPreferredActivities(adminComponent, getPackageName());

IntentFilter intentFilter = new IntentFilter(INTENT_ACTION);
intentFilter.addCategory(Intent.CATEGORY_DEFAULT);

devicePolicyManager.addPersistentPreferredActivity(adminComponent, intentFilter, handlerComponent);

添加此内容后,我将从其他应用程序启动startActivity(new Intent(INTENT_ACTION));,但这不会被上述活动中断。

2 个答案:

答案 0 :(得分:0)

我已经尝试了几件事而却无法使它发挥作用。

然而,源代码似乎做了文档所说的,所以我猜这个功能目前已经破解了(Android 5.0)。

答案 1 :(得分:0)

我遇到了同样的问题,请按照以下步骤解决:

请确保您已设置了意图过滤器

<intent-filter>
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.HOME" />
</intent-filter>

到清单中的组件。

由于addPersistentPreferredActivity()仅告诉系统何时存在隐式意图,因此请使用我的组件来处理它而不是其他组件。

因此,您需要向组件添加意图过滤器,以确保它可以接收意图。