有一个在PackageManager类称为currentToCanonicalPackageNames(字符串[]名称),我怀疑可能被用来做什么你问的方法。因此,像:
String[] names = {"Email","Contacts"};
try{
String[] canonicalNames = context.getPackageManager().currentToCanonicalPackageNames(names);
//do whatever you want with canonicalNames, e.g. launch the email app,
Intent email = context.getPackageManager().getLaunchIntentForPackage(canonicalNames[0]);
context.startActivity(email);
}catch(NameNotFoundException e){
Log.d("MY ACTIVITY NAME", "Package name(s) not found.");
}
我寻找到做这样的自己的事情,但没试过这个代码,所以请谨慎使用。
编辑: 所以今天晚上试了一下,解决方案可能不是你要找的。假设您只从这些应用程序的显示名称开始(技术上称为应用程序标签),则您可能必须实际浏览设备上安装的所有应用程序,以查找该应用程序标签。我只是将我的解决方案发布到我的博客,所以take a look。