我有一个ImageView按钮,可在我的Android应用中打开gmail 撰写邮件标签,通过意图。 以前,相同的代码正在努力打开它。
imageView3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent send=new Intent(Intent.ACTION_VIEW);
send.setType("plain/text");
send.setData(Uri.parse("testmail@gmail.com"));
send.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail");
startActivity(send);
}
});
现在点击按钮后应用程序崩溃了。
答案 0 :(得分:0)
用这个代替你的代码。如果您的应用程序不再崩溃,则表示您的Android设备中没有Gmail应用程序。
imageView3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
try
{
Intent send=new Intent(Intent.ACTION_VIEW);
send.setType("plain/text");
send.setData(Uri.parse("testmail@gmail.com"));
send.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail");
startActivity(send);
}
catch (ActivityNotFoundException ex)
{
ex.printStackTrace();
}
}
});
答案 1 :(得分:0)
最后我得到了答案,让这段代码真正忙碌
Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("text/html");
final PackageManager pm = getPackageManager();
final List<ResolveInfo> matches = pm.queryIntentActivities(intent, 0);
ResolveInfo best = null;
for (final ResolveInfo info : matches) {
if (info.activityInfo.packageName.endsWith(".gm") || info.activityInfo.name.toLowerCase().contains("gmail")) {
best = info;
break;
}
}
if (best != null) {
intent.setClassName(best.activityInfo.packageName, best.activityInfo.name);
}
intent.setData(Uri.parse("mailto:emailto@gmail.com"));
try {
startActivity(intent);
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(MainActivity.this, "Error Sending Email,Try Later.", Toast.LENGTH_SHORT).show();
}