[Android] USBストレージのアンマウントをお手軽に
USBメモリやSDカードリーダー/ライターなどのマスストレージデバイス(以下USBストレージと略)でデータをやり取りしたり、キーボードやマウスなどのインプットデバイスで入力を快適にしたりと、多用途に使える便利な機能です。
ウチの"Nexus7(2012)"でもデータ転送に大活躍。この端末には、標準でOTG機能をサポートしたカスタムROMであるCyanogenmodがインストールされており、USBストレージならmicroUSBポートに接続するだけで/storage/usbdiskにマウントしてくれます。
けれども、面倒なのはこれを取り外す場合。システムの"設定"を開き、"ストレージ"の項目を選択、そして画面の下の方にある"共有ストレージのマウントを解除"機能を使用する必要があります。
マウントしたモノはアンマウントするのが正しい手続きであり、省略することはできません。となれば、手順を簡略化するのが正攻法です。真っ先に浮かんだのがAndroid(Linux)のumountコマンド。
ターミナルエミュレータにて、suした後に"umount /storage/usbdisk"と打ち込んでみる、という方法です。これをショートカット化するなどすれば、ワンタップでマウントしたUSBストレージを外せそう。
ところがこの方法ではうまくいきません。"設定"の"ストレージ"を見てみると、容量0バイトのUSBストレージがマウントされているという変な状態になります。
試しにファイル管理アプリを使って/storage/usbdiskを見てみると中は空っぽで、アンマウントされていることが分かります。
それでいて、"共有ストレージのマウントを解除"機能を使用すると正常に処理が完了します。どうやら、システム的にはアンマウントされているものの、UI的にはまだマウントされている(と思い込んでいる)様子。
とりあえずはそのまま外しても問題はなさそうなのですが、これをやると「USBストレージが不正に取り外されました」と怒られてしまいます。
仕方がないので、別の方法を探るべく、Playストアで検索をかけてみるも見つかるのはマウント主体のアプリばかり。それらのアプリにはワンタップでアンマウントする機能が用意されていたりするのですが、CyanogenmodにはUSBストレージの自動マウント機能が実装されており、すでに存在する機能とバッティングするのは気分的によろしくありません。
そんな中で見つけたのが"Storage Info"というアプリ。
USBストレージのマウントを検出すると通知領域にアイコンが表示され、その通知をタップすると"設定"の"ストレージ"を直接開いて表示する、という動作をします。
アンマウントに特化した、実に地味な機能ではありますが、手順の簡略化には効果的。けれども、少々残念な部分があったりします。
本アプリには、設定を呼び出さず独自にアンマウントを実行する"Quick storage access"という機能が装備されているのですが、これが今ひとつうまく機能しません。アンマウントできなかった旨のメッセージが表示されるばかりです。
また、アンマウントしてUSBストレージを取り外した後も、通知領域にアイコンが残る場合があります。単にアイコンが消えないだけなので実害はないのですが、気になる場合にはこのアイコンを消す機能がアプリ内に用意されておりますのでこれを使うのもよろしいかと。
これら2つの問題は、"Storage Info"をユーザアプリからシステムアプリに変換することで解消されます。これを実行するためにはTitanium Backup(有料版)などのアプリが別途必要となりますのでご注意を。
"Quick storage access"を有効にした場合、通知のタップでこちらのダイアログが表示され、OKすればその場でアンマウントが実行されます。
この時、エラーが発生しない限り何も報告してくれないので、本当にUSBストレージを外して良いのか気になります。
"設定"の"ストレージ"を開くなり、ファイル管理アプリで/storage/usbdiskを見るなりすれば明白になりますが、それは本末転倒というモノ。
なので、結果が気になるのなら"Quick storage access"は無効のままで使用し、アンマウント自体は通常の"共有ストレージのマウントを解除"機能を使うのがよろしいかと思われます。これならば状況が見えますし何より確実。
"Storage Info"は、ほんの少し手順を簡略化するだけですが、これまで不満に思いながらも面倒な手順を踏んでいたユーザには、目からウロコの画期的なアプリと感じることでしょう。
もっといい方法をご存知の方はコメントなどでご一報いただけると助かります。
コメント