2016-11-01 20 views
1

本当に面倒な問題に取り組んでいます。 コンテキスト:私のアプリケーションは、特別な拡張子(例えばmyFile.png.myapp)を持つファイルを開くように作られていますダウンロードしたファイルには一部のデバイスで拡張子がありません

Chromeを使用して私のサーバーからダウンロードすると、正常にダウンロードされ、「開く」というプロンプトが表示され、 appの場合、インテントのパスはcontent:// downloads/my_downloads/2136の形式になります。

拡張子はありません。

私は送信できる唯一のMimeTypeはアプリケーション/オクテットストリームなので、私はそのファイルが本当にpngであることを知る方法がありません。

ファイルがダウンロードされたという通知をクリックすると正常に動作します。

これは、Android 6.0.1を実行しているNexus 5の場合にのみ、他のすべてのデバイスで発生します。実際のファイル名を取得するとスムーズに動作します。

マニフェストとアプリ内の両方の権限が設定されています。

私の調査は、DownloadProviderパッケージのヘルパークラスによるものだと考えていますが、わかりません。

誰でも手助けできますか?

乾杯

答えて

0
String path = "content://downloads/my_downloads/2136"; 

String mimeType = getContentResolver().getType(Uri.parse(path)); 
+0

おかげで、私が言ったように、これは何の付加的な情報を与えないので、MIMEタイプは、常にアプリケーション/ octet-streamとなります。 – Tom

+0

いいえ、私が送ることができる唯一のMimeTypeはアプリケーション/オクテットストリームです。そして送信は、ここで行われるのとは異なる決定です。 Chromeがダウンロードしている場合は、何を送信していますか? – greenapps

+0

しかし、あなたは元のファイル名を与えるDocumentFileをuriに、次にDocumentFile.getName()を使うことができます。 – greenapps

関連する問題