resolveActivity()为android.intent.category.APP_GALLERY返回意外结果

时间:2016-08-19 11:15:18

标签: android

我想更改系统的默认图库应用。 这是我的IntentFilter:

    IntentFilter intentFilter = new IntentFilter();
    intentFilter.addAction(Intent.ACTION_MAIN);
    intentFilter.addCategory(Intent.CATEGORY_APP_GALLERY);
    intentFilter.addCategory(Intent.CATEGORY_DEFAULT);
    intentFilter.addCategory(Intent.CATEGORY_BROWSABLE);

我有一个similer Intent:

    Intent = new Intent(Intent.ACTION_MAIN);
    ...

我在myPackageManager.addPreferredActivity(...)(或myPackageManager.clearPreferredActivity(...))之后使用myPackageManager.replacePreferredActivity(...)来替换目标应用的偏好设置,但是当我使用

    ResolveInfo resolveInfo = myPackageManager.resolveActivity(intent, 0);

它仍会返回默认系统Photos。

我可以通过以下代码正确获取系统中的所有图库应用(仅限两个):

    List<ResolveInfo> resolveInfoList = myPackageManager.queryIntentActivities(intent, 0);

我的应用和系统库都在列表中。 我检查了它们都优先级为0,这意味着它们是相同的。

我检查了我的Android手机中的package-restrictions.xml,然后找到了

    <item name="com.my.gallery/.MyGalleryActivity" match="100000" always="true" set="2">           
        <set name="com.my.gallery/.MyGalleryActivity" />                                           
        <set name="com.system.gallery/.SystemGalleryActivity" />                                     
        <filter>                                                                                       
            <action name="android.intent.action.MAIN" />                                               
            <cat name="android.intent.category.APP_GALLERY" />                                         
            <cat name="android.intent.category.DEFAULT" />                                             
            <cat name="android.intent.category.BROWSABLE" />                                           
        </filter>                                                                                      
    </item>      

我相信我已经正确地取代了图库的偏好,但为什么我仍然将系统图库作为默认图像查看器?

顺便说一句,我的android SDK版本是23。

0 个答案:

没有答案