元の動画 Everything about storage on Android https://youtu.be/jcO6p5TlcGs
Something about storage on Android™Everything about storage on Androidhttps://youtu.be/jcO6p5TlcGs
View Slide
ストレージの種類内部ストレージ 外部ストレージ(Micro SD)• 他のアプリから隔てられている• 機密データの保持が可能• 必ず存在する• サイズ制限が厳しいかもしれない• 機密データの保持はできない• 存在の確認が必要• サイズ制限は厳しくないアプリ専⽤ストレージ共有ストレージ• 他アプリと共有するファイル• メディアやドキュメント• MediaStoreによる効率的なアクセス⾃動的に削除
ストレージAPIの更新• Scoped Storage• READ_EXTERNAL_STORAGE権限があればメディアファイルにアクセス可能• メディアファイル: 画像、動画、オーディオファイルなど• ドキュメントファイルはDocument pickerを介してアクセスが必要• ドキュメントファイル: PDF、DOCXなど• Document Picker• ドキュメントファイルへのアクセスを提供 (SAFを使⽤)• ユーザーがファイルごとにアクセスを許可を制御可能• WRITE_EXTERNAL_STORAGEの⾮推奨化• MediaStore経由でファイルの書き込みが可能なため追加の権限は不要• メディアファイルの位置情報が読めないようになった• この情報を読むために追加でACCESS_MEDIA_LOCATION権限が必要になったAndroid 10+
Photo picker• 写真などのメディアファイルを権限なしに選択• ⾃動的に更新されるためコードの変更は不要Android 11 (API Level 30)+ファイルの選択val picker = rememberForActivityResult(PickVisualMedia()) { uri ->if (uri != null) {selectedFiles.add(uri)}}picker.launch(PickVisualMediaRequest(PickVisualMedia.ImageAndVideo))ファイル種類の指定// 画像のみpicker.launch(PickVisualMediaRequest(PickVisualMedia.ImageOnly))// 動画のみpicker.launch(PickVisualMediaRequest(PickVisualMedia.VideoOnly))// MIMEタイプで指定picker.launch(PickVisualMediaRequest(PickVisualMedia.SingleMimeType("image/png")))
プライバシーと透過性• Androidではプライバシーと透過性が⼤幅に改善• Photo pickerなどのUXも強化• 権限が不要なAPIの追加• アプリで追加で許可を得る必要をなくす• ユーザーがアクセス許可を制御できる
出典と帰属出典• Everything about storage on Android• YouTube: https://youtu.be/jcO6p5TlcGs• Photo picker• https://developer.android.com/training/data-storage/shared/photopicker帰属AndroidはGoogle LLCの商標です