今秋に登場予定のWindows 11 Ver.24H2では、Windowsのスマートフォン連携機能を介して、Androidスマートフォンのファイルにエクスプローラーからアクセスできるようになる予定だ。今回は、この機能を解説しよう。なお、Windows 11 Ver.24H2では、これとは別に、スタートメニュー横にスマートフォン連携の情報を表示可能になるようだ。
エクスプローラーからスマホのファイルにアクセス
USBケーブルで接続する必要もない
この機能は、Windows Insider Programのプレビュー版Windows 11 Ver.24H2で利用できる。名前がないと解説しにくいため、ここでは、この機能を「エクスプローラーアクセス」と勝手に名前を付けた(どうしていつもMicrosoftは名前をちゃんと付けないんだろう?)。
エクスプローラーアクセスは、現行版のVer.23H2では利用できないので注意してほしい。Android側は、現時点でAndroid 11以上で、「Windowsにリンク」アプリを使って、PC側のスマートフォン連携アプリと接続している必要がある。また、スマートフォン連携はVer.1.24071以上が必要だ。今回はWindows 11 Ver.24H2 OSビルド 26120.1350(Devチャンネル)と、スマートフォン連携Ver.1.24081.78.0で検証している。
エクスプローラーアクセスは、Windowsのバージョン、OSビルド番号を満たしていたとしても、個別に機能が有効化されるため、必ずしも利用できるとは限らない。筆者の手元にあるプレビュー版Windows 11でも、この機能が使えないものがいくつかある。
エクスプローラーアクセスは、過去記事(「Windows 11のスマートフォン連携は新機能が追加されるなど、いまだ進化している」)で紹介した「ファイル転送」とは異なるものだ。
ファイル転送は、サムスンGalaxyシリーズなどの「特定機種」で利用できた機能で、AndroidとWindows側の双方で操作が必要だった。しかし、エクスプローラーアクセスは、スマートフォンの機種やメーカーは限定されず、Windowsのエクスプローラーでのみ操作が完結する。
「設定」→「Bluetoothとデバイス」→「モバイルデバイス」→「デバイスの管理ボタン」から、「モバイルデバイスを管理」ダイアログボックスを表示させたときに、接続中のモバイルデバイスに「エクスプローラーにモバイルデバイスを表示する」という項目が表示されたらエクスプローラーアクセスは有効になっている。
この項目がオンで、「スマートフォン連携」でスマートフォンが接続状態になっていれば、エクスプローラーのフォルダツリーにモバイルデバイス名の項目が表示される。エクスプローラーの設定ですべてのフォルダーを表示(「オプション」→「表示タブ」→「ナビゲーションウィンドウ」→「すべてのフォルダーを表示」)にしていれば、OneDriveの下あたりに表示される。
この設定がオフの場合には、クイックアクセス下の線のあたりに表示されるはずだ。
この状態でスマートフォン名のフォルダを開くと、storageというフォルダのみが見える。このとき、エクスプローラーのアドレスバーには、「接続済み > スマートフォン名」というパスが表示されている(このようなリストをパン屑リストという)。ここで、「接続済み」をクリックすると、スマートフォンのストレージ情報が表示される。
これはOneDriveも同じで、OneDrive同期フォルダのパン屑リスト先頭にある「OneDrive」をクリックする、やはりストレージ状態を表示するミニウィンドウがでる。
このミニウィンドウからは、「最新の情報に更新」ボタンで同期処理ができるのだが、現状ではスマートフォン側のファイルシステムを正しく表示できないことがある。たとえば、稼働中にSDカードを取り外した場合などだ。スマートフォン側とエクスプローラーの状態に齟齬があった場合、一回、スマートフォンをフライトモードにしてネットワークを切断して再接続させると、最新の状態に戻ることがある。
なお、このエクスプローラーアクセスは、OneDriveの同期フォルダと同じ仕組みを使っているようだ。このため、Android側のファイルやフォルダ表示には同期状態を示すアイコンが付く。また、フォルダの実体は、ユーザーフォルダの下にある「CrossDevice\<スマホ名>」にある。
Androidには、USB接続でPTP(Picture Transfer Protocol、ISO 15740:2013 https://www.iso.org/standard/63602.html)またはMTP(Media Transfer Protocol、https://usb.org/document-library/media-transfer-protocol-v11-spec-and-mtp-v11-adopters-agreement)を使ってPCに接続し、ファイルやフォルダを公開する機能がある。
しかし、エクスプローラーアクセスはこれらの機能とも異なる。現在のAndroidではUSB接続をMTP、PTPなど充電以外に使うには、ケーブルを接続したあと、「設定」→「接続済みのデバイス」→「USB」から「USBの使用目的」を選択する必要がある。エクスプローラーアクセスとほぼ同じことができるが、エクスプローラーアクセスは、ケーブル接続も設定変更も不要である。
Androidのファイルシステム
この状態で見えるスマートフォンのフォルダは、Androidのアプリからアクセス可能なファイルシステムに近いものだ。実際には、Android内の/sdcardディレクトリに近いものが表示される。
というのは、Androidでは「FUSE(Filesystem in Userspace)」を使い、アプリからアクセスできるファイルシステムを「仮想的」なものにしているからだ。
また、シンボリックリンクも複雑で、「内部ストレージ」は、「/storage/emulated/0」が相当するが、ここを「/storage/self/primary」リンク先としている。さらにルートディレクトリにある「/sdcard」が、「/storage/self/primary」をリンク先にしている。こうしたリンク構造は後方互換性のためと考えられる。
エクスプローラーから見えるAndroidのディレクトリ階層構造は、Android側にSDカードが装着されているかどうかで異なる。SDカードが装着されている場合、エクスプローラーのstorageフォルダには、SDカードのボリュームシリアル番号(Volume Serial Number、VSN・Volume IDとも)がフォルダ名として表示される。
ボリュームシリアル番号は、8桁の16進数で4桁目と5桁目の間をハイフンで区切ったもの。メディアの初期化時に乱数などで生成され、ブートセクター内に記録される。Windowsでは、cmd.exeの内部コマンドであるdirやvolコマンドで表示できる。
Androidでは、スマートフォン本体に内蔵されているフラッシュメモリを「内部ストレージ」、SDカードなどの本体外の外部記憶を「外部ストレージ」と呼ぶ。Androidアプリは、開発時に自身のデータの保存先を「内部ストレージ」にするか「外部ストレージ」にするかを選択する。どちらをアクセスするかでAPIが異なるからだ。
とはいえ、大半のアプリケーションは、内部ストレージだけを前提として作られる。というのも、外部ストレージが存在するかどうかは個々のスマートフォンで異なるのに対して、「内部ストレージ」は必ず存在するからだ。アプリケーション内で、さまざまなエラー対策をするならば、外部ストレージを使うようにアプリを開発することはできるが、よほど大きなデータを扱わない限り、外部ストレージを使わないようにアプリは作られている。
たとえば、Androidの標準カメラアプリは、画像の保存先を内部ストレージにするか、外部ストレージ(SDカード)にするかを選択できる。
基本的に内部ストレージと外部ストレージは同じディレクトリ構造を持つ。これは、後方互換性のためだ。過去には、SDカードを装着時にマウントして、ストレージとして利用していたほか、アプリを外部ストレージに移動することなどが可能だった。
エクスプローラーから見ることができるスマートフォン側のフォルダは、以下の表のような構造を持つ。
これは、Androidでは「共有ストレージ」と呼ばれており、アプリケーション間で、ファイルを相互にアクセス可能にするためのもの。たとえば、カメラ画像は、DCIMフォルダ以下に置かれ、他のアプリがカメラ画像にアクセスすることができる。
ただし、「Android」フォルダは、アプリが固有のデータを保存するための場所で、他のアプリからはアクセスができない。通常のアプリがアクセスできる「内蔵ストレージ」は、ここにあるAndroidパッケージ名のサブフォルダ以下が対応する。
ファイル/フォルダ名の先頭がピリオドのもの(Linuxなどの隠しファイル)は、Android側に存在していてもエクスプローラーアクセスでは表示されない。
フォルダは、基本的には用途が決まっており、用途に応じてファイル形式も限定される。DCIMフォルダは、DCF(Design rule for Camera File system、https://www.cipa.jp/std/documents/download_j.html?DC-009-2010_J)に準拠したもので、以下に必ずDCFディレクトリを含む。
その名称はAndroidの製造メーカーが決めるため機種ごとに異なる。DCIMフォルダは、原則、スマートフォンの内蔵カメラで撮影した静止画、動画ファイルを置くが、それ以外の静止画はPictureフォルダを、動画はMovieフォルダを使う。
この連載の記事
-
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 -
第447回
PC
この秋登場のWindows 11の新バージョン、Ver.24H2の状況を見る -
第446回
PC
Windows 11のフォトアプリがUWPからWin32アプリになったことで今更わかるUWPの問題点 -
第444回
PC
外部ファイルをExcelに読み込む際の作業を効率化するPower Queryの活用 -
第443回
PC
Windows Terminalで採用されたCascadia Codeフォントを使うとプログラムを書くとき断然見やすい -
第442回
PC
Copilot+ PCで実現されるローカル推論で「対クラウド企業」を指向するMicrosoft -
第441回
PC
WSL以前から40年以上続く、Windows(Microsoft)とUNIXとの関わり - この連載の一覧へ