今日の一言
2011/12/25(Sun) ASUSのTF101買った。すごく便利。 [長年日記] 編集 15:03現在曇 6℃
_ [Android]Androidでファイラー(エクスプローラー)を使わずにローカルにあるapkをインストールする
参考: http://code.google.com/p/android/issues/detail?id=2454
野良アプリや自作アプリ等で、自分でapkファイルをインストールしたい場合がある。
AstroやExproler等のファイルマネージャーを使えば。ファイルを開く際に「インストール」を選択できるが、ファイルマネージャーをインストールできない(したくない)場合、Androidの標準ブラウザを使うことで、ローカルにあるapkファイルをインストールできる。
具体的には、ブラウザのURIハンドラーを使って、apkファイルにアクセスする。
例えば、 「/mnt/sdcard/hogehoge.apk」 というファイルがある場合、ブラウザを開いてURLに以下を入力する。
content://com.android.htmlfileprovider/sdcard/hogehoge.apk
もしくは、
file:///sdcard/hogehoge.apk
これで、ブラウザを介してhogehoge.apkにアクセスでき、apkはインストール用のファイルであると登録されているため、開く方法として「インストール」が選択できる。
また、同様の方法で、ローカルにあるテキストファイルや画像ファイルを開くことも出来る。
補足情報
なお、「content://com.android.htmlfileprovider/」によるファイルアクセスには、htmlに組み込んだ悪意あるJavaScriptを介してファイルシステムを改ざんできるという脆弱性につながることが報告されている。
(http://scan.netsecurity.ne.jp/article/2011/03/16/26471.html)
そのためかどうかは不明だが、Android 2.3(?)からは「content://com.android.htmlfileprovider/」は使えなくなり、代わりに「file:」を使ってアクセスできるようになった模様。(詳細不明)