2012-02-16 7 views
1

この質問は100回以上尋ねられましたが、答えはどれも私のために働いていません。私はアプリがどこから来ても、icsやvcs拡張子を持つすべてのファイルを扱うようにしたい。 * http // httpsから来た場合は自分でダウンロードする必要はありません。ブラウザで少なくともユーザーに保存させてからアプリケーションで開くことができます。現在、ブラウザに「この電話ではサポートされていないコンテンツ」と表示されています。ここでAndroidアプリケーションのics/vcsファイルを処理してください。正しいインテントフィルタ

は、私が現在持っているものですが、私はすべてしようとしてきた:私はHTTPSリンク、私のサーバーから来ているものをクリックすると、上記で

 <intent-filter > 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <data android:host="*" /> 
      <date android:mimeType="text/calendar" /> 
      <data android:scheme="https" /> 
     </intent-filter> 

を、私は私のサーバーが送信している知っていますテキスト/カレンダーのMIMEタイプの場合、droidはリンクを開くためにどのアプリを使用するかを尋ねます。リストには、自分のアプリやブラウザがあります。私のアプリを選択すると、私の活動が実行され、私にUriが与えられます。私はブラウザにファイルをダウンロードさせたいが、私はそれを自分でダウンロードしたくない...他のファイルタイプ、画像、pdfなどと同じようにブラウザを選択すると、ダウンロードを開始するが停止する「この電話ではサポートされていないコンテンツ」エラーが表示されます。

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

また、「コンテンツ」に設定スキームを試みたが、他のバリエーションの多くは、私はSOや他の場所を上のが見つかりました:

は私もこれを試してみました。

答えて

0

ブラウザはバイナリファイルのダウンロード動作を実装しており、インテントフィルタで変更することはできません。

pdf viewerのような他のアプリケーションでは、ファイル拡張子を除いて、2番目のアプローチと同じインテントフィルタを宣言します。

したがって、ファイルをダウンロードすることをお勧めします。数行のコードしか必要ないので、大きな問題ではありません。

+0

私はこれに自分自身で答えようとしていましたが、他の誰かが最初にやってくれてうれしかったです。私はデザインが好きではありませんが、私はあなたが正しいと思っています。それは「まさにその通り」です。私は "ちょうどいくつかのコード行が必要"であることに同意しません。インターアクション、アクティビティの再起動、画面の回転などを処理できる堅牢な方法ではありません。しかし、私はこれが答えであることに同意します私はそれが好きかどうか。ちょうど本当に変わっているようです。特に、ブラウザーがMIMEサーバーを取得するためにWebサーバーに接続しなければならなかったので、もう一度ダウンロードする必要があります(Cookieの問題も考えられます)。 – eselk

関連する問題