monacaで作るアプリでメディアスキャンを行う方法¶
MONACAでメディアスキャンができないので何とかする¶
monacaではファイルをローカルに保存しても他のアプリから見ることはできません(アルバムアプリとか)。
ContentResolverやMediaScanConnectionによってファイルをシステムに認識させる必要があります。
結論¶
monacaではできません。
GOLD以上のプランなら独自プラグインを使えるのでそれで対応できるかもしれません。
お金がないので今回はcordovaで作ることにします。
monacaからプロジェクトエクスポート¶
まずはmonaca上で作っていたアプリを吐き出します。
プラグインは吐き出されません。
ビルドの設定は吐き出されるので先にmonacaに登録しておけば後々楽です。
cordovaのインストール¶
- node(npm)のインストール
npm install -g cordova
monacaからcordovaへ¶
cordova ベースでプロジェクトを作成します
cordova create フォルダ名 パッケージ名 アプリ名 -d
cordova create folder com.hoge.fuga HogeFuga -d
cordova platform add android
- www,platforms\resフォルダの中身を置き換える
pluginの追加(monacaで使ったものとMediaScan)
cordova plugin add https://github.com/apache/cordova-plugin-file.git
cordova plugin add https://github.com/apache/cordova-plugin-file-transfer.git
cordova plugin add https://github.com/apache/cordova-plugin-splashscreen
cordova plugin add https://github.com/Pandazaur/cordova-plugin-android-mediascanner
プラグインの使い方
window.plugins.scanmedia.scanFile( FILEPATH, function (msg) {console.log("Success ScanMedia");}, function (err) {console.log("Fail ScanMedia: " + err); });
デプロイ(jdkとandroid-sdkが必要)
- 準備
..\jdk\bin\
とsdk\build-tools\[version]\
を環境変数Path
に追加する- 署名のためにmonacaから
keystore.private
をダウンロード
- ビルド:
cordova build --release
folder\platform\android\build\outputs\android-release-unsigned.apk
ができる
- 署名1:
keytool -genkey -v -keystore keystore.private -alias alias -keyalg RSA -validity 10000
- 署名2:
kjarsigner -verbose -keystore keystore.private xxx.apk alias
- パスワードは2つ必要になる
- monacaだと普段1つしか使わないので忘れていたらあきらめる
- 最適化:
zipalign -v 4 android-release.apk android-release-opt.apk
- 必須。これをしないと配布できない。
- 準備
感想¶
monaca使うとかなり楽できてるのが実感できた。
phonegap使おうと思ったらしょっぱな404だったけどあれはいったいなんなのか。