パスワード保護されたPDF(給与明細など)を、あらかじめ設定したパスワードで自動的に解除し、お好みのPDFビューアーアプリへシームレスに受け渡すAndroid用ラッパーアプリです。
毎月送られてくる給与明細など、決まったパスワードを入力する手間を省き、ワンタップで内容を確認できるようにすることを目的としています。
- 自動パスワード解除: 設定済みのパスワードを使用して、Gmail等の添付PDFを自動でアンロックします。
- アプリ間連携: 解除したPDFを、システムにインストールされている他のPDF閲覧アプリ(Google PDF Viewer等)に
ACTION_VIEWインテントで転送します。 - パスワード未設定ファイルへの対応: パスワードがかかっていないファイルは、そのまま次のアプリへ渡します。
- 安全なストレージ: ユーザーのパスワードは
EncryptedSharedPreferencesを使用して安全に保存されます。
- 対象OS: Android 6.0 (API 23) 以上
- 主要ライブラリ:
- PdfBox-Android: PDFの解析およびパスワード解除に使用。
- Security (Jetpack):
EncryptedSharedPreferencesによる認証情報の保護。
- パスワード設定: 初回起動時または設定画面で、PDF解除用の共通パスワード(生年月日など)を保存。
- PDFの受け取り: GmailなどのアプリでPDF添付ファイルをタップした際、本アプリを選択。
- 解除処理:
- パスワード保護の有無を判定。
- 保護されている場合、保存済みパスワードで一時ファイル(キャッシュ)として展開。
- 外部アプリ起動:
FileProviderを介して一時ファイルのURIを生成し、インテントを発行して他アプリで表示。
- FileProvider: Android 7.0以降のセキュリティ制約に対応するため、アプリ間のファイル共有には
FileProviderを使用しています。 - 一時ファイルの管理: 解除された(パスワードのない)生データは
context.cacheDirに保存されます。セキュリティ向上のため、閲覧終了後や次回起動時に古い一時ファイルを削除する仕組みを推奨しています。 - 権限:
content://URI を通じてファイルを受け取るため、通常は広範なストレージ読み取り権限は不要です。
このプロジェクトは MIT License の下で公開されています。 (※実際の運用に合わせて変更してください)