PR

 先日、友人から聞いた話です。買ったばかりのAndroidスマートフォン(Galaxy S)をストーブの上に置いたのを忘れて、うっかり火を付けてしまったそうです。でも、頑丈だったから大丈夫でした…なんてことはなく、やはり熱で溶けて無残な姿になったのでした。

 さすがにスマートフォンをストーブで焼いてしまう人は多くないかもしれませんが、胸のポケットに入れておいて、下を向いたときにトイレに落としてしまったという話はよく耳にします。そこで、今回は、もしもの場合に備えて、Android対応内にある写真データをパソコンにバックアップするJavaScriptを作ります。

携帯電話バックアップの今昔

 スマートフォン以前の携帯電話では、写真や連絡先のバックアップを取ろうと思ったなら、はじめに、本体からSDカードにデータをコピーしておいて、その後、SDカードをPCに挿してデータをコピーしました。

 では、Androidではどうでしょうか。バックアップの手順自体はAndroidでもほぼ同じです。しかし違うのは、AndroidならPCやネットとの連携が手軽にできるということです。Android端末を買うと大抵、PCと端末を接続するためのUSBのコードが付属していますので、端末とPCでデータのやりとりが非常に簡単です。

 そして、Androidの魅力の一つはGoogleのWebサービスとの連携機能です。アドレス帳のデータなどは、Googleアカウントに結び付けられていますから、万が一端末が故障しても、新しい端末でアドレスデータは自動的に同期してくれることでしょう。

 とは言え、現状では完全に同期してくれるのは、アドレス帳や、Gmailなど一部のデータのみです。特に写真などは、日々撮影して大量になりますので、SDカードにどんどん貯まります。ですから、万が一に備えて日ごろからデータのバックアップが大切となるのです。

プログラムを作らずにバックアップする方法

 実は、プログラムを作らなくても、Windowsの標準機能を使って、SDカードの画像を全部バックアップする方法があります。その方法は以下の通りです。

 まず、Android端末をUSBでPCと接続したら、Android側でUSBストレージ機能をONにします。すると、Windows側で自動再生のダイアログが出ます(もし出ない場合は、マウントしたドライブを右クリックしてポップアップメニューから[自動再生を開く]をクリックします)。

 次に自動再生のダイアログの中にある、[画像とビデオの読み込み]をクリックします。これで、SDカード内にあるすべての画像がマイピクチャ内にコピーされます。

 ※多くのAndroid端末では、画面上部の「ステータスバー」からUSBストレージ機能のオン・オフを設定できます。KDDIのIS03では、ステータスバーを開き、「USBモード」-「カードリーダーモード」をタップ-「マウント」ボタンをタップします。

プログラムを作らなくても画像をバックアップできる
プログラムを作らなくても画像をバックアップできる
[画像のクリックで拡大表示]

 この方法の欠点は、SDカードにあるすべての画像が読み込まれてしまうことです。全部のフォルダーをチェックするので時間がかかる上に、インストールしたアプリケーションが作った関係ない画像までコピーされてしまいます。そして、PCのマイピクチャ内に取り込んだ日付でフォルダーが作られてファイルがコピーされます。

 多くの機種では撮影した写真は、SDカードのDCIMというフォルダーに保存されますので、このフォルダーだけをコピーするようにプログラムすれば読み取り時の時間短縮ができます。加えて、年月日ごとに分類してコピーするなら、後から写真を見つけやすくなるでしょう。今回、この問題をJavaScriptのプログラムで解決します。