我有下面的方法。它获取设备上的所有应用程序,并通过名称查找特定的应用程序:Hangout、Skype、Viber、WhatsApp。所有4台都安装在运行Android 4.4.4的摩托罗拉Droid上。三星SM-T530NU和5.0.2。
在这两种设备上,它都找不到Hangout。知道为什么会这样吗?
输出:
Com.Skype.raider/..Main m=0x108000}意图过滤器: null Com.viber.voip/.欢迎活动m=0x108000}意图过滤器: null m=0x108000}意图筛选器: null
我删除了if条件,列出了所有应用程序,并手工搜索(可以这么说)。我什么都没看到,挂,吼,.
public static List<ResolveInfo> getAllInstalledApps(Context context) {
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> appsList = context.getPackageManager().queryIntentActivities(mainIntent, 0);
for (ResolveInfo resolveInfo : appsList) {
String infoString = resolveInfo.toString();
if (infoString.contains("hangouts") ||
infoString.contains("skype") ||
infoString.contains("viber") ||
infoString.contains("whatsapp")) {
Log.i("getAllInstalledApps", resolveInfo.toString() + " Intent filter: " + resolveInfo.filter);
}
}
return appsList;
}发布于 2016-12-30 16:01:37
Hangout的应用程序包名实际上是com.google.android.talk。你应该去找那个。查找包名的技巧是转到产品页面的URL。它是id查询的一部分。例如,Google的URL是:
https://play.google.com/store/apps/details?id=com.google.android.talk
https://stackoverflow.com/questions/41399064
复制相似问题