Android QueryInputActivities()会导致某些应用程序出现nullPointerException 出身背景

Android QueryInputActivities()会导致某些应用程序出现nullPointerException 出身背景,android,android-intent,nullpointerexception,android-activity,Android,Android Intent,Nullpointerexception,Android Activity,我创建了一个应用程序,需要获取其他应用程序支持意图的信息,例如,为了在桌面上创建快捷方式 问题 我正在使用下一个简单的代码,在我测试过的99%的应用程序中,它对我来说都很好: final Intent mainIntent=new Intent(); mainIntent.setPackage(packageName); final List<ResolveInfo> resolveInfos=getPackageManager().queryIntentActivities(mai

我创建了一个应用程序,需要获取其他应用程序支持意图的信息,例如,为了在桌面上创建快捷方式

问题 我正在使用下一个简单的代码,在我测试过的99%的应用程序中,它对我来说都很好:

final Intent mainIntent=new Intent();
mainIntent.setPackage(packageName);
final List<ResolveInfo> resolveInfos=getPackageManager().queryIntentActivities(mainIntent,0);
或:

或者两者兼而有之

问题 为什么我只能为这个应用程序获得这个异常,我如何修复它并获得我可以启动它的所有支持意图

当然,我可以使用try-catch添加两种获取意图的方法,但也许有一种更正确的方法


我知道我可以将动作添加到intent.action\u MAIN的intent中,但这也会删除我希望获得的许多可能的意图。

或者尝试其他可能不起作用的意图,这些意图在将来可能不起作用,或者在将来甚至可能不存在。最好的情况是你得到一系列的一星级评级。最糟糕的情况是,其他开发者获得了一系列的一星级评分,因为他们改变了他们的应用程序,这对所有普通人都适用,但会破坏你的快捷方式。问题是,在某些应用程序上…它会导致nullPointerException-使用LogCat检查与异常相关的堆栈跟踪,然后查看Android源代码以确定根本原因。该应用程序针对超级用户和开发人员,因此他们应该知道自己在做什么。关于例外情况,我当然可以在那里搜索,我只是问是否有人注意到这是一个已知的问题。
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List<ResolveInfo> resolveInfos=getPackageManager().queryIntentActivities(mainIntent,PackageManager.MATCH_DEFAULT_ONLY);