0
我遇到了关于如何获取主页启动程序包名称的问题。
在Android中,有两种类型的家庭发射器:获取主页启动程序包名称并启动它的最佳方式
- 原单发射
- 3,第三发射器,如去-发射或OEM
所以,我们不能用指定包名来启动它。
最后,我想出了一个解决方案。
有没有其他更好的方法来做到这一点?
//find out the package with ACTION_MAIN & CATEGORY_HOME
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
PackageManager pm = this.getPackageManager();
List<ResolveInfo> ris = (List<ResolveInfo>) pm.queryIntentActivities(i,
PackageManager.MATCH_DEFAULT_ONLY);
Log.i("", ris.size() + "");
//seletc the first one , doc says the first one is the home launcher currently
if (ris != null && ris.size() > 0) {
String pkg = ris.get(0).activityInfo.packageName;
Log.i("HOME PKG NAME ", pkg);
//start it
i.setClassName(ris.get(0).activityInfo.packageName, ris.get(0).activityInfo.name);
startActivity(i);
}
感谢https://groups.google.com/forum/?fromgroups=#!topic/android-developers/-5aGSOdwJ-8
Sood,谢谢你的回复。我测试了代码,它工作正常。这是开始家'活动'的简单方法,但如果我想知道包名?比如我想检测'HOME Activity'现在是否运行前景。 – Everett 2013-03-22 01:00:05