2011-11-11 17 views

答えて

0

残念ながら、それは有望に見えません。

How do I launch the email client directly to inbox view?

あなたはコンモードでの電子メールクライアントを開くことができます前に、これは、依頼されているが、あなたはすでにそれを知っているように見えます。

2
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); 
+0

その1申し訳ありませんではないが、この1 –

+0

意図mailClient =新しいテント(Intent.ACTION_VIEW)を使用してみてください。 mailClient.setClassName( "com.google.android.gm"、 "com.google.android.gm.ConversationListActivity"); startActivity(mailClient);あなたの応答は –

+0

tnxです。私はちょうど私がデフォルトのメールアプリではなく、HTCのメールアプリに到達しようとしていることに気づいた。それを受信トレイに開く方法はありますか?または私がその情報をどこで見つけることができるかを教えてもらえますか? –

6

はい、Androidのデフォルトのメール受信トレイを開くことができます。
使用このコード:

Intent intent = getPackageManager().getLaunchIntentForPackage("com.android.email"); 
startActivity(intent); 


このコードは動作しますが、あなたは最初にあなたのAndroidデバイスのデフォルトのメールを設定する必要があります。あなたのメールを既に設定していればうまく動作します。それ以外の場合は、NullPointerExceptionで強制的に閉じます。

+1

は本当に必要ですか? – copolii

+2

誰かが答えを出すときに、帽子や小さいものを探すのではなく、スタックのオーバーフローを見つけようとすると、そのような種類の楽しみを取りたいなら、別の楽しみサイトを試してみてください。この種のプログラミングサイトではない –

+2

それは間違っています: このソリューションでは、ユーザーが「com.android.email」パッケージを持つアプリを所有しており、そのアプリが使用するデフォルトのメールアプリだと想定しています。たとえば、私がK9メールを持っていて、それを私のデフォルトのクライアントとして使うと、在庫メールクライアントを開くことは私には役に立たない。 「インターネットエチケット」と呼ばれることが楽しいことではありませんでした。すべての大文字を入力すると、嫌な思いをするのです。それを除いて、あなたのテキストは読みにくく見えにくくなります。大文字と小文字がある理由があります。適切にフォーマットされたテキストは、すべての大文字よりもはるかに読みやすくなります。 – copolii

0

あなたはこれを使って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); 
+0

これは新しいメールを作成しますが、最初の質問はデフォルトのメールアプリを開くことでした。 –

1

このコードは、私のために働きました。これは、デバイスに、まっすぐ受信トレイに登録されているすべての電子メールアプリケーションとのピッカーを開きます。

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); 
    } 
+0

起動のインテントを解決できない場合にクラッシュする - 別のチェックが必要です! –

9

目標は、受信トレイを表示するデフォルトの電子メールアプリを開くことであれば、キーは意図カテゴリを追加し、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

+0

メールアプリのみを起動する簡単な方法です。ありがとうございます! – TUSHAR

+0

これはどのように私は反応ネイティブでこれを模倣するだろうか? – jasan

+0

@ jasan - jsの土地からこのロジックをトリガするカスタムコンポーネントを作成する必要があります –

関連する問題