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

在网上很容易找到如何调用系统自带的邮件系统发送邮件,但是关于如何打开邮件应用的主界面的文章很少。

android系统一般都会带系统自带的Email应用,包括一些定制机。android自带的Email应用的包名是com.android.email,这个可以从应用管理器中查找到。只有一个包名信息打开应用不太可能。android系统允许通过组件名(ComponentName)打开一个应用。组件是包含应用包名和主Activity的对象。如何找到Email的主Activity呢?通过执行如下代码可以列如系统中所有应用的主Activity类和主包名。

private String listPackage() {

List<ApplicationInfo> mApplications = null;
PackageManager manager = getPackageManager();
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); // 取出Intent
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); // 分辨出位默认Laucher启动的程序
final List<ResolveInfo> 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<ApplicationInfo>(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);

发表评论