1

これは重複しているように見えるかもしれませんが、投稿されたソリューションのほとんどを試しましたが、成功しなかったと思います。

ある時点でカスタム拡張子(.xyz)を使用してファイルを電子メールで送信するアプリケーションを作成しています

次に、メールアプリからこのファイルを開く必要がありますが、機能させることができません。

このサイトや他のサイトで多くの投稿を読んだ後、ファイルエクスプローラーから(ただしメールアプリからではなく)このファイルを開くことができるインテントフィルターを思いつきました。

<intent-filter> 
                <action android:name="android.intent.action.VIEW" /> 
                <category android:name="android.intent.category.DEFAULT" /> 
                <category android:name="android.intent.category.BROWSABLE" /> 
                <data android:scheme="file" android:host="*" 
                    android:pathPattern=".*\\.xyz"/> 
 </intent-filter> 

次に、Webブラウザ内から電子メールと添付ファイルを開こうとしましたが、機能しませんでした。(ファイルはダウンロードされましたが、開くことができませんでした)。LogCatでこのエラーが発生しました

    09-14 12:30:50.516: D/DownloadManager(2341): android.content.ActivityNotFoundException:
    No Activity found to handle Intent 
{ act=android.intent.action.VIEW 
dat=file:///mnt/sdcard/download/samplefile.xyz 
typ=message/rfc822 flg=0x10000000 }

ファイルにrfc822mimeタイプを使用するのは奇妙だと思いますが、インテントフィルターを変更して追加しました

android:mimeType="message/rfc822"

データセクションに。

次に、ブラウザーからダウンロードした直後にファイルを開くことはできましたが、ファイルエクスプローラーからファイルを開くことができなくなりました(これは理にかなっています)。

android:mimeType = " / "を追加しても、同じ効果があります。(ASTROファイルエクスプローラー内から見たファイルのmimeタイプは空です)。

しかし、私が本当に必要としているのは、電子メールアプリケーションからファイルを開くことであり、これらのアプローチはどれもそこでは役に立ちませんでした。メールを開くときに添付ファイルをクリックすることすらできません。

カスタムのmimeタイプを作成する必要があるかもしれませんが、その方法を見つけることができませんでした。

だから、問題は、私のアプリケーションで(組み込みの電子メールアプリから)電子メールの添付ファイルを開くために何をする必要があるかということです。

  • mimeタイプを作成しますか?(もしそうなら、どのように?)
  • コンテンツプロバイダーを作成しますか?
  • 両方とも?(繰り返しますが、どうやって?)
4

1 に答える 1

1

念のため、誰かが私と同じ問題を抱えているので、ようやく機能させることができました. 私が抱えていた問題は、添付ファイル付きの電子メールを送信するときに、MIME タイプ「message/rfc822」を使用していたことです。「image/xyz」に変更するとうまくいきました。もちろん、MIME タイプを「*/*」に設定したインテント フィルターを使用しました。

メールを送信するときの動作が少し異なり、メール アプリ (MMS、WhatsApp、Bluetooth など) だけでなく、送信できるすべてのアプリでセレクターが表示されますが、私の場合は問題ありません。

于 2012-09-18T15:12:45.303 に答える