public static String getPackageName(Intent intent){
PackageManager packageManager = HwContext.getContext().getPackageManager();
List<ResolveInfo> resolveInfos = packageManager.queryBroadcastReceivers(intent, 0);
if(resolveInfos.size() > 0 && resolveInfos.get(0) != null){
String packageName = resolveInfos.get(0).activityInfo.applicationInfo.packageName;
//packageManager.queryIntentActivities(intent, 0);
return packageName;
}
return null;
}
通过intent 动态匹配对应的app包名,可以是Activity 、 Service 、 ContentProvider 、 Broadcast Receiver
在Android 11 及以上版本上使用 可能需要在AndroidManifest.xml文件里 配置queries标签,否则无法匹配到对应的app 信息
<queries>
<intent>
<action android:name="com.update.LocalUpdate" /> 要查找的action
</intent>
</queries>