メールアプリケーションにボタンをリンクしようとしています。メールを送信するのではなく、受信トレイを開くだけです。アンドロイドコードからデフォルトのメール受信トレイを開く方法は?
Intent intent = new Intent(...)
でこれを行う必要がありますか?
もしそうなら、()
との間には何が必要ですか?
メールアプリケーションにボタンをリンクしようとしています。メールを送信するのではなく、受信トレイを開くだけです。アンドロイドコードからデフォルトのメール受信トレイを開く方法は?
Intent intent = new Intent(...)
でこれを行う必要がありますか?
もしそうなら、()
との間には何が必要ですか?
残念ながら、それは有望に見えません。
How do I launch the email client directly to inbox view?
あなたはコンモードでの電子メールクライアントを開くことができます前に、これは、依頼されているが、あなたはすでにそれを知っているように見えます。
You can use this but it is for gmail only
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
startActivity(emailIntent);
はい、Androidのデフォルトのメール受信トレイを開くことができます。
使用このコード:
Intent intent = getPackageManager().getLaunchIntentForPackage("com.android.email");
startActivity(intent);
このコードは動作しますが、あなたは最初にあなたのAndroidデバイスのデフォルトのメールを設定する必要があります。あなたのメールを既に設定していればうまく動作します。それ以外の場合は、NullPointerException
で強制的に閉じます。
は本当に必要ですか? – copolii
誰かが答えを出すときに、帽子や小さいものを探すのではなく、スタックのオーバーフローを見つけようとすると、そのような種類の楽しみを取りたいなら、別の楽しみサイトを試してみてください。この種のプログラミングサイトではない –
それは間違っています: このソリューションでは、ユーザーが「com.android.email」パッケージを持つアプリを所有しており、そのアプリが使用するデフォルトのメールアプリだと想定しています。たとえば、私がK9メールを持っていて、それを私のデフォルトのクライアントとして使うと、在庫メールクライアントを開くことは私には役に立たない。 「インターネットエチケット」と呼ばれることが楽しいことではありませんでした。すべての大文字を入力すると、嫌な思いをするのです。それを除いて、あなたのテキストは読みにくく見えにくくなります。大文字と小文字がある理由があります。適切にフォーマットされたテキストは、すべての大文字よりもはるかに読みやすくなります。 – copolii
あなたはこれを使ってAndroidのデフォルトの電子メールクライアントを開くことができます。
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/plain");
emailIntent.setClassName("com.android.email", "com.android.email.activity.Welcome");
emailIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(emailIntent);
これは新しいメールを作成しますが、最初の質問はデフォルトのメールアプリを開くことでした。 –
このコードは、私のために働きました。これは、デバイスに、まっすぐ受信トレイに登録されているすべての電子メールアプリケーションとのピッカーを開きます。
Intent emailIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("mailto:"));
PackageManager pm = getPackageManager();
List<ResolveInfo> resInfo = pm.queryIntentActivities(emailIntent, 0);
if (resInfo.size() > 0) {
ResolveInfo ri = resInfo.get(0);
// First create an intent with only the package name of the first registered email app
// and build a picked based on it
Intent intentChooser = pm.getLaunchIntentForPackage(ri.activityInfo.packageName);
Intent openInChooser =
Intent.createChooser(intentChooser,
getString(R.string.user_reg_email_client_chooser_title));
// Then create a list of LabeledIntent for the rest of the registered email apps
List<LabeledIntent> intentList = new ArrayList<LabeledIntent>();
for (int i = 1; i < resInfo.size(); i++) {
// Extract the label and repackage it in a LabeledIntent
ri = resInfo.get(i);
String packageName = ri.activityInfo.packageName;
Intent intent = pm.getLaunchIntentForPackage(packageName);
intentList.add(new LabeledIntent(intent, packageName, ri.loadLabel(pm), ri.icon));
}
LabeledIntent[] extraIntents = intentList.toArray(new LabeledIntent[intentList.size()]);
// Add the rest of the email apps to the picker selection
openInChooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents);
startActivity(openInChooser);
}
起動のインテントを解決できない場合にクラッシュする - 別のチェックが必要です! –
目標は、受信トレイを表示するデフォルトの電子メールアプリを開くことであれば、キーは意図カテゴリを追加し、ACTION_MAINを使用することですそのような意図:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_APP_EMAIL);
getActivity().startActivity(intent);
https://developer.android.com/reference/android/content/Intent.html#CATEGORY_APP_EMAIL
その1申し訳ありませんではないが、この1 –
意図mailClient =新しいテント(Intent.ACTION_VIEW)を使用してみてください。 mailClient.setClassName( "com.google.android.gm"、 "com.google.android.gm.ConversationListActivity"); startActivity(mailClient);あなたの応答は –
tnxです。私はちょうど私がデフォルトのメールアプリではなく、HTCのメールアプリに到達しようとしていることに気づいた。それを受信トレイに開く方法はありますか?または私がその情報をどこで見つけることができるかを教えてもらえますか? –