2017-06-02 15 views
-1

googleとstackoverflowでいくつかの調査を行った後、hereのようにAndroidのさまざまなアプリに対して異なるコンテンツを送信できることを学びました。Androidで電子メールでテキストを共有し、他のアプリでプレーンテキストを共有

しかし、いくつかの問題が発生しました。

  1. メールクライアントが選択されている場合(電話機のデフォルトメールクライアント、Gmail Apps、Outlook Appsなど)、HTMLメールを送信します。上記のリンクでは、私が避けたい個々のメールアプリを個別に特定する必要があります。

  2. GMAILアプリからHTMLメールを送信しようとします。それは想定されているようにフォーマットされていません。

答えて

0

私は電子メールを送信するために使用されている活動について照会するためのそのような方法はありません任意のメールクライアントが

を選択した場合はHTML形式のメールを送信したい、Intent.ACTION_SENDはすべて取得しますあなたが定義したMIME_TYPEを送信できるアプリ。

たとえば、plain/textMIME_TYPEとすると、plain/textを共有できるすべてのクライアントが返されます。それはユーザーの間で共有したいアプリです。ただし、パッケージ名を比較して、どのアプリが選択されているかを確認することができます。私はGmailアプリを通じてHTML形式の電子メールを送信しようとすると

と仮定は、あなたが

// Query about app that can send `text/plain` 
final Intent i = new Intent(Intent.ACTION_SEND); 
i.setType("text/plain"); 
i.putExtra(Intent.EXTRA_TEXT,"text"); 

final List<ResolveInfo> activities = getPackageManager().queryIntentActivities (i, 0); 

// Check if gmail is clicked, when the `chooser` item is clicked, 
ResolveInfo info = activities.get(position); 
if (info.activityInfo.packageName.contains("com.google.android.gm")) { 
    // Gmail was chosen 
} 

、Gmailのクライアントが選択されているかどうかを確認します。そのように書かれたのは ではありません。

HtmlすべてのHtmlタグをサポートしているわけではありません。独自のタグハンドラを作成する必要があります。このlinkをチェックして、Htmlでサポートされているタグを確認してください。

関連する問題