我想更改系统的默认图库应用。 这是我的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。