如何打开Anroid系统自带邮件应用

在网上很容易找到如何调用系统自带的邮件系统发送邮件,但是关于如何打开邮件应用的主界面的文章很少。 android系统一般都会带系统自带的Email应用,包括一些定制机。android自带的Email应用的包名是com.android.email,这个可以从应用管理器中查找到。只有一个包名信息打开应用不太可能。android系统允许通过组件名(ComponentName)打开一个应用。组件是包含应用包名和主Activity的对象。如何找到Email的主Activity呢?通过执行如下代码可以列如系统中所有应用的主Activity类和主包名。 private String listPackage() { List mApplications = null; PackageManager manager = getPackageManager(); Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); // 取出Intent mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); // 分辨出位默认Laucher启动的程序 final List apps = manager.queryIntentActivities(mainIntent, 0); // 利用包管理器将起取出来 Collections.sort(apps, new ResolveInfo.DisplayNameComparator(manager)); StringBuffer sb = new StringBuffer(); if (apps != null) { final int count = apps.size(); if (mApplications == null) { mApplications = new ArrayList(count); } mApplications.clear(); for (int i = 0; i < count; i++) { ResolveInfo info = apps.get(i); sb.append(“Label:”).append(info.loadLabel(manager)).append(“;\n\r”); sb.append(“packageName:”).append(info.activityInfo.applicationInfo.packageName).append(“;\n\r”); sb.append(“name:”).append(info.activityInfo.name).append(“;\n\r”); sb.append(“icon:”).append(info.activityInfo.loadIcon(manager)).append(“\n\r\n\r”); } } return sb.toString(); } 通过查找发现Email的主Activity的类名是com.android.email.activity.Welcome。这样打开邮件主界面就很易容了。 ApplicationInfo application = new ApplicationInfo(); application.name = “电邮”; application.className = “com.android.email.activity.Welcome”; application.packageName = “com.android.email”; ComponentName c = new ComponentName(“com.android.email”,”com.android.email.activity.Welcome”); Intent intent = new Intent(); intent.setComponent(c); startActivity(intent);