ダウンロード機能を実装してみる・・・。
まずmenu_main.xmlに、
メニューアイテム"ダウンロード"を追加・・・。
(今回はstrings.xmlに追加し忘れた・・・。)
MainActivity.javaのonOptionsItemSelectedで、
webViewからstrUrlを取得、Uri.parseでパースしてdownloadUriに・・・。
downloadUri.getLastPathSegmentでdownloadFilenameも取り出す・・・。
リクエスト作成では、保存先はrequest.setDestinationInExternalFilesDirでEnvironment.DIRECTORY_DOWNLOADSを指定・・・。
アプリフォルダの下の/files/Download/に、downloadFilenameのファイル名で保存される・・・。
DownloadReceiverはBroadcastReceiverの派生クラスで、downloadReceiverをregisterReceiverで登録することで、
ここでいろいろイベント処理できる・・・。
CustomWebViewClientと同様にactivityをもらって、downloadManagerから成功か失敗かのステータスを取得している・・・。
downloadManagerは、
こうやって取得・・・。
registerReceiverしたら、
downloadManager.enqueueでrequestを追加すると、ダウンロードキューに追加されてダウンロードが始まるのである・・・。
ダウンロードは、ファイルを書き込むので、
android.permission.WRITE_EXTERNAL_STORAGEを追加・・・。
これでEnter押しても、
この端末だとロードされない・・・。
ダウンロードを押すと、ダウンロードが始まる・・・。
通知領域を上からスワイプで降ろすと、ダウンロードされてるのがわかる・・・。
戻って、ダウンロードが終わると、"STATUS_SUCCESSFUL"が出る・・・。
ダウンロードできた・・・。
https://github.com/bg1bgst333/Zinc/tree/develop/android/empty_activity/android_studio/src/Zinc