问题描述
我需要知道的一些默认的Android应用程序,如电子邮件,联系人和放大器的规范名称;其他。我希望能够通过自己的规范名称来启动它们。
I need to know the canonical names of a few Default Android applications like Email, Contacts & others. I want to be able to start them using their canonical names.
如同
Intent i = new Intent("com.pacakge.canonicalname");
因此,任何想法,我可以得到默认的Android应用程序的规范化包名称的列表?
So any ideas where i could get a list of the canonical package names of default Android apps?
感谢
推荐答案
有一个在软件包管理系统类称为currentToCanonicalPackageNames(字符串[]的名字),我怀疑可能被用来做什么你问的方法。因此,像:
There's a method in the PackageManager class called currentToCanonicalPackageNames(String[] names), which I suspect could be used to do what you're asking. So something like:
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.");
}
我在寻找到做这样的事情我自己,但没有试过code,所以请谨慎使用。
I'm looking into doing this sort of thing myself, but haven't tried this code, so use with caution.
编辑:
所以今天晚上试了一下,解决方案可能不是你要找的内容。假设你开始只有这些应用程序(技术上称为应用程序标签)的显示名称,你可能要真正去通过所有已安装寻找一个应用程序标签设备上的应用程序。我只是张贴了我解决我的博客,所以<一个href=\"http://teschrock.word$p$pss.com/2012/11/29/getting-a-package-name-from-an-application-label-display-name/\"相对=nofollow>看一看。
这篇关于我如何得到的Android应用deafult封装形式的规范名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!