gpt4 book ai didi

android - 尽管匹配,PackageManager queryIntentActivities 返回空列表

转载 作者:行者123 更新时间:2023-11-29 02:11:48 34 4
gpt4 key购买 nike

我有两个相互依赖的应用程序,我现在想测试是否所有必需的 Intent 都可用。

我使用了 Android 开发者博客中的一般实现:

http://android-developers.blogspot.com/2009/01/can-i-use-this-intent.html

public static boolean isIntentAvailable(Context context, String action) {
final PackageManager packageManager = context.getPackageManager();
final Intent intent = new Intent(action);
intent.addFlags(Intent.FLAG_DEBUG_LOG_RESOLUTION); // ADDED BY ME
List<ResolveInfo> list =
packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);

return list.size() > 0;
}

第二个应用程序(我检查过)的 list 包含以下 Activity :

    <activity android:name="MyPackageMyAction" android:exported="true" android:enabled="true">
<intent-filter android:label="License">
<action android:name="com.mypackage.action.myaction"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

我用

检查它

boolean available = isIntentAvailable(this, "com.mypackage.action.myaction");

日志输出包含以下内容:

VERBOSE/IntentResolver(59): Resolving type null scheme null of intent Intent { act=com.mypackage.action.myaction flg=0x8 }
VERBOSE/IntentResolver(59): Action list: [ActivityIntentInfo{440482c0 com.mypackage.action.myaction}]
VERBOSE/IntentResolver(59): Matching against filter ActivityIntentInfo{440482c0 com.mypackage.action.myaction}
VERBOSE/IntentResolver(59): Filter matched! match=0x108000
VERBOSE/IntentResolver(59): Final result list:

因此,如果安装了第二个应用程序,我通常会假设 isIntentAvailable 返回 true。但是,queryIntentActivities 返回的列表始终为空。

我做错了什么?

最佳答案

好吧,我现在觉得自己很傻。在解决这个问题大约一天之后,我发现了问题所在。

一切都已正确注册并且应该可以完美地工作,如果我不是那么愚蠢的话:-)。接收 Intent 的应用程序是一个许可证 key ,应该对启动器隐藏。因此我的应用程序中有这一行:

pkgMgr.setApplicationEnabledSetting(PACKAGE_NAME, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

删除它后,一切立即正常。感谢大家的支持!

关于android - 尽管匹配,PackageManager queryIntentActivities 返回空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6807243/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com