ボタンのクリックで新しい電子メール インテントを開始できるアプリを作成しました。いくつかのデバイスでテストしましたが、Galaxy 2 と Galaxy 3 でクラッシュすることを除いて、正常に動作するようです。次に、インターネット アクセスをチェックするコードを示します。インテントを呼び出します。
ConnectivityManager cm = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
if((cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isAvailable() && cm.getActiveNetworkInfo().isConnected()))
{
Log.d("Main", "Start Email");
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.setClassName("com.google.android.gm","com.google.android.gm.ComposeActivityGmail");
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { monkey.getSendTo() });
sendIntent.setData(Uri.parse(monkey.getSendTo()));
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "TFS note");
sendIntent.setType("plain/text");
sendIntent.putExtra(Intent.EXTRA_TEXT, "Sent From TFS\n");
startActivity(sendIntent);
} else{//toast if there is no internet
Toast.makeText(getActivity().getBaseContext(),"No Internet\n access",
Toast.LENGTH_SHORT).show();
}
Galaxyデバイスではgmailアプリを修正していないため、インテントを起動できないようです。そのため、任意の形式のメールアプリを開く一般的なインテントを作成するにはどうすればよいか疑問に思っていました。 Galaxy デバイスと互換性を持たせるには、より良い方法です。