我有以下方法。它可以获取设备上的所有应用,并按名称查找特定的应用:环聊,Skype,Viber,WhatsApp。所有4个都安装在运行Android 4.4.4的Motorola Droid MAXX上。和一台带有5.0.2的三星SM-T530NU。
在这两款设备上,它都找不到环聊。任何想法为什么会这样?
输出:
com.skype.raider / .Main m = 0x108000}意图过滤器:null
com.viber.voip /.WelcomeActivity m = 0x108000}意图过滤器:null
com.whatsapp / .Main 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;
}
答案 0 :(得分:2)
环聊的应用套餐名称实际为com.google.android.talk
。你应该寻找那个。查找包名称的提示是转到产品页面的URL。它是URL中id
查询的一部分。例如,Google Hangouts的网址为:
https://play.google.com/store/apps/details?id=com.google.android.talk