2011年5月20日金曜日

履歴バックアップファイル(History.xml)をDropboxに送る【PRO版】

DIY六法(PRO版)の設定画面には「履歴管理」という項目の中に「履歴バックアップ」という機能があります。

この機能は、法令のダウンロード履歴+お気に入り登録情報について

/SDカードマウントポイント/com.blogspot.lis4android.lawindexsearcher/History.xml

というファイルにバックアップする、というものです。

当然のことながら、バックアップファイル名は固定なので、バックアップを実行するたびにファイルが置き換わります。

しかし、バックアップが何らかの理由で消失!という事故が全く無いわけではありませんので、さらなるバックアップ手段が欲しいところです。

そこで、PRO版の次回のアップデートにはこのファイルを「Dropboxに送る」機能を追加したいと思っています。




この機能を実装するに当たって、まずはAndExplorerでファイルをDropboxに送ってLOGCATを確認しました。

Intentアクションは当然のことながら

  • android.intent.action.SEND

になります。

送るファイルはXMLファイルに限らず色々なものがありますので、 setTypeは

  • "*/*"

です。さらにこの時、Intentフラグに


  • 0x3000000(Intent.FLAG_GRANT_READ_URI_PERMISSION |
                                Intent.FLAG_GRANT_WRITE_URI_PERMISSION)

をセットします。

Intent先のパッケージ・クラス名は、

  • com.dropbox.android/.activity.DropboxSendFrom
  • com.dropbox.android/.activity.DropboxSendTo


です。

で、送りたいファイルはSDカードのファイルURIをputExtraする訳ですが、

  • Intent.EXTRA_STREAM

でURIを渡してやればOKです。

準備が出来たらstartActivity(intent)すると、Dropboxが保存先のディレクトリ指定を聞いてきますので指定してやればファイルのアップロードを実行してくれます。

備えあれば憂いなしということで、こまめにバックアップを取っておきましょう。

Dropboxアプリがインストールされていない場合は、

  • android.content.ActivityNotFoundException

をcatchしてマーケットに遷移するようにしています。

この話題に関連するものとして、

  • 何らかの原因により、SDカードの法令データファイルが消失した場合にこのHistory.xmlファイルを使ってどう復旧するか

という点について後日触れてみたいと思います。

実はそれが「六法(法令リスト)カタログコレクション」の話につながっていきます。

ではまた。

0 件のコメント:

コメントを投稿