Android13以降でのファイルアクセス

Android 13 では、アプリとユーザーがデバイス上のファイルにアクセスする方法がいくつか変更されています。
重要な変更点の 1 つは、アプリが他のアプリのプライベート ストレージ ディレクトリ内のファイルに直接アクセスできなくなったことです。
これは、ユーザー データを保護するためのセキュリティ対策です。

Android13で次の2点においてファイルをやり取りする方法を紹介します。

1.Android端末内でファイル操作する方法
2.Androidをパソコンに繋いでファイルをやり取りする方法。


・対応したFileアプリでファイル操作する方法

次のアプリを使うことでAndroid13でもファイル操作できる場合があります。

Files by Google (Marc apps)
https://play.google.com/store/apps/details?id=com.marc.files&hl

その他、Googleからエクスプローラーアプリとしてアクセス許可を受けているアプリ。
 X-plore, Solid Explorer, Ghost Commander など。


・[DOCUMENT_TREE]を使って任意のフォルダにファイルをロード・セーブする方法

ロードメニューに[DOCUMENT_TREE]が表示されている機種の場合は、この機能で任意のフォルダにファイルのロード・セーブをすることができます。
[DOCUMENT_TREE]の使い方はマニュアルの次の場所を参照して下さい。
文法>ファイルシステム>[Android11のSDストレージシステムの変更について]>[DOCUMENT_TREE]


・Android studioのDevice Explorerを使用してファイルアクセスする方法
Android studio
https://developer.android.com/studio/
こちらの開発ツールソフトのDevice Explorerという機能で
USBに接続されたAndroid端末とパソコン間でファイルのやり取りができます。
Device Explorerの使い方については
'Android studio Device Explorer'で検索して得られる情報を参照して下さい。
[例]
https://developer.android.com/studio/debug/device-file-explorer

Device Explorerは次に述べるadbを使う方法に比べて幾つかの制限を持っています。

内部ストレージのうち、アプリ固有のストレージ領域にのみアクセス可能 (一部制限あり)
Android 13の場合、すべての内部ストレージにアクセスできるわけではない


・adbコマンドを使う方法

ADBコマンドを使ってファイルを転送する方法を紹介します。

Android 13では、従来の方法で内部ストレージ全体にアクセスできなくなったため、
ADBコマンドを利用する方法が有効になります。以下、パソコンからAndroidデバイスへファイルをロード、保存する方法を詳しく説明します。
複雑ですがこれが確実な方法です。

準備

パソコンにADBをインストールする:

ADBは、Android SDKに含まれています。Android SDK Platform Toolsをダウンロードして、パソコンにインストールしてください。

ダウンロード: https://developer.android.com/studio/releases/platform-tools
ここからダウンロードしてインストールします。

開発者オプションの有効化:

開発者向けオプションを有効にするには、次の手順に従います:
[設定] > [端末情報] > [ビルド番号] に移動します。
ビルド番号を 7 回タップして、開発者向けオプションを有効にします。

USBデバッグを有効にする:

Androidデバイスで、開発者オプションを有効にしてUSBデバッグをオンにします。

デバイスとパソコンを接続する:

USBケーブルで、Androidデバイスをパソコンに接続します。

- ファイルのロード

コマンドプロンプトを開く:

Windowsの場合はスタートメニューから「コマンドプロンプト」、Macの場合はターミナルを開きます。
管理者権限で実行する必要があります。

デバイスを認識させる:

以下のコマンドを実行し、デバイスが認識されていることを確認します。

adb devices
認識されている場合は、デバイスシリアル番号が表示されます。

ファイルをロードする:

以下のコマンドを実行し、ファイルをデバイスへロードします。

adb push <パソコン側のファイルパス> <デバイス側の保存先パス>

例:
adb push C:\Users\Public\test.txt /sdcard/test.txt

<パソコン側のファイルパス>: パソコンに保存されているファイルのパスを指定します。
<デバイス側の保存先パス>: デバイスにファイルを保存するパスを指定します。

ファイルの保存

ファイルをデバイスからパソコンへコピーする:

以下のコマンドを実行し、デバイスからファイルをパソコンへコピーします。

adb pull <デバイス側のファイルパス> <パソコン側の保存先パス>

例:
adb pull /sdcard/test.txt C:\Users\Public\test_copy.txt

<デバイス側のファイルパス>: デバイスに保存されているファイルのパスを指定します。
<パソコン側の保存先パス>: パソコンにファイルを保存するパスを指定します。

注意事項
誤ったコマンドを実行すると、データを破損する可能性があるため、十分注意して操作してください。
重要なファイル操作を行う場合は、事前にバックアップを取ることをお勧めします。

追加情報:
ADB official documentation: https://gist.github.com/Pulimet/5013acf2cd5b28e55036c82c91bd56d8