マニフェストに (intent-filters を介して) pdf ファイルを関連付けるアプリケーションがあるため、誰かがデフォルトのブラウザーで pdf リンクをクリックすると、アプリでそのアクションを実行し、プログレスバーでダウンロードできます。私の質問は、他のファイルを関連付けることはできますが、マニフェストで「ハードコーディング」することはできませんが、ユーザーがそのファイル拡張子をたとえば設定で選択 (または書き込み) できるようにする方法であり、コードから動的に追加できます。おそらくこれはブロードキャストレシーバーで実行できることはわかっていますが、その例や簡単なコードは見つかりません。bsplayer設定でそのような設定メニューを見ました..しかし、十分な評判がないため、画像を投稿できません。
以下の回答には誤解があったと思うので、私の問題をより詳細に説明しようと思います。
マニフェストに次のコードを含むアプリケーションがあります。
<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:scheme="http" /> <data android:host="*" /> <data android:pathPattern=".*\\.pdf" /> </intent-filter>
2.i .pdf ファイルを登録するアプリを起動します。そのため、次にブラウザで pdf リンクをクリックすると、ウィンドウがポップアップし、どのアプリケーションでそのアクションを完了する必要があるかを選択する必要があります。アプリケーションを選択すると、メイン アクティビティが開始されます。このアクティビティでは getIntent() を使用し、アプリはプログレスバーを使用してファイルをダウンロードします。
3.問題は、ダウンロードしたいことと、そのような他のファイルです。jpg、png ..などですが、ユーザーにどちらを選択するか、その種類のファイルにつながるリンクをクリックすると、アプリケーションを使用してダウンロードしたいファイルの拡張子を書き込むようにすることさえできます。
4.これを実現するには、マニフェストではなくコードに動的にファイル拡張子を追加する必要があります。そのクラスは IntentFilter クラスを使用できるため、ブロードキャストレシーバーの例をいくつか探していましたが、それで何をすべきかを本当に理解できません。
5.私の主な目標: アプリを起動すると、スピナーまたは編集ボックスを含むレイアウトができます。ユーザーは拡張子 (.dwf) を選択/書き込みます。その拡張機能がアプリに登録されました。次にインターネットを閲覧しているユーザーが.dwfファイルにつながるリンクをクリックすると、アプリでアクションを続行することを選択できます。ファイルは.pdfと同じようにダウンロードする必要があります
6.私の下手な英語は申し訳ありませんが、助けていただければ幸いです。コードも;)