3

.apk ファイルのダウンロード時にパッケージ インストーラーを開くように Android OS に通知する方法はありますか?

おそらくContent-Typeによるものでしょうか?または、APK 固有の URL プロトコルのようなものかもしれませんapk://apk.location

4

1 に答える 1

1

独自のアプリで自分でダウンロードを行っていますか、それとも外部アプリで何らかの動作を作成しようとしていますか?

アプリの外部でダウンロード時に動作をトリガーできるとは思いません (ユーザーがダウンロードしたファイルを開くにはダウンロードしたファイルを選択する必要があるため) が、自分でダウンロードを処理している場合は、アプリケーションをプログラムでインストールする方法に関する この投稿が必要です。

編集: あなたがウェブサイトを書いていて、APKをネイティブアプリで強制的に開くことができるようにしたいと言ったコメントに対処する:私はそれのようなことをする方法を考えることができますが、あなたはブラウザーにダウンロードを行わせないため、ネイティブ アプリでダウンロードします。

ACTION_VIEW Intent選択した形式の URI を含むを受け取るには、ネイティブ アプリを登録する必要があります。のようなものを使用することをお勧めしますyourappname://localhost/escaped_download_url_to.apkActivityで URI からパスを取得し、そのIntent最後の部分を取得します (URI の処理は、プロトコル、ホスト、およびパスのいくつかのコンポーネントに分割されます)。必要に応じてエスケープを解除し、アプリで手動でダウンロードを開始します。完了したら、提供されたリンクを使用して、ダウンロードした APK をアプリが配置した場所から開きます。

モバイル Web サイトで to が提供されていることを確認している限り、hrefこのyourappname://localhost/escaped_download_url_to.apk動作をトリガーできます。ユーザーがそのリンクをクリックすると、それを開くために使用するアプリを選択するダイアログが表示されます (それが可能なアプリが複数ある場合)。ユーザーがアプリを選択すると、フィルターActivityに登録したが起動します。Intent

2 番目を編集し ます。おそらく、URI をエスケープする必要はありません。アプリがそのプロトコルでインテントを受信するように登録している限り、独自の投稿で提案したように、作成された URI プロトコルを使用するだけで機能するはずです。 yourappname://yourserver.com/my/location.apk動作します。本当に重要なのは、URI でアプリに提供するデータからダウンロード URL を取得できることだけです。

于 2012-08-22T18:32:02.827 に答える