これは重複しているように見えるかもしれませんが、投稿されたソリューションのほとんどを試しましたが、成功しなかったと思います。
ある時点でカスタム拡張子(.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タイプを作成しますか?(もしそうなら、どのように?)
- コンテンツプロバイダーを作成しますか?
- 両方とも?(繰り返しますが、どうやって?)