スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

AndroidのLicense Verification Library(LVL)

解説を書こうかと思いましたが、いつものごとく、
ドキュメントがしっかりしているので概要というか、気になったところ、躓きそうなところだけ。
http://developer.android.com/guide/publishing/licensing.html


基本的に導入は簡単
それこそ、コピーするだけで使う事が可能。(もちろん修正した方がよい箇所は複数あるが)


デフォルトの仕組みで、SharedPreferenceに難読化して記述してくれたりする。
ただ、アプリケーション自体の難読化をProGuardなどを使って実行する事を強く推奨している
ProGuardについては別エントリー


キャッシュする期間をどう調整しようか悩みどころ。
24時間はキャンセル可能なので、翌日にチェックしたいけど、期間が1日だと、
払い戻し期間終了後も1日ごとにチェックさせるわけにはいかないしなぁ・・・
って思ってたけど、
VTの値に関して、以下記載有

・For a paid application, the server sets the initial license validity period so that the license response remains valid for as long as the application is refundable. A licensing Policy in the application may cache the result of the initial license check and does not need to recheck the license until the validity period has expired.
・When an application is no longer refundable, the server sets a longer validity period  typically a number of days.


その辺りはちゃんと考えてサーバが値を返すので、そこは気にしなくてよい。
という風に読めるんだけど、そうですよね。きっと。


VTの値については別にしてみました。
http://mokkouyou.blog114.fc2.com/blog-entry-75.html


後は、リトライのハンドリングかな。
正常ユーザがネットワーク問題等でリトライした結果、拒否されるのは避けなくてはならないので、
RETRYステータスあたりが帰ってきた場合、残り回数と合わせて通知してあげるのが親切かもしれない。
ただ、自分がそもそもにおいて常にネットワーク下に無いタイプなので困りどころなんだよね・・・

と考えると、初期値としてはサーバの返す値を設定して、
それ以降のキャッシュ期間は長く取るとかしてもいいかもしれないですね。
初期値が返品可能期間終了時なら、既に値がある場合~なんて判断でいいし、
ちょっとそれが怪しい場合、最初に設定する場合に+24時間しておくと安心とか。
追記
試験結果ですが、やはり24時間後が最初VTとして返されるようです。
キャッシュされた設定を消して再度アクセスしても同じ値が返されましたので、
これで24時間をみてもいいように思えます。
ただ、キャンセル後再度購入した場合などは、24時間後+ちょっと後みたいな値が返ってくるので要注意。
なんでだろ?
とりあえず、その期間後の結果は後ほど確認してみます。




実装上の注意点。

デフォルトでは、MaxRetryカウントが0になっています(変数の初期値)。
初回起動時に、ネットワーク障害なんかで確認できなかった場合、MAXが0なので、
購入していない扱いになってしまい、ちょっと気分を害する結果になりますので、
その値はちゃんとハードコーディングしておいた方がいいと思われます。
関連記事

コメントの投稿

非公開コメント

LVL の日本語解説

はじめまして
参考になる記事をありがとうございます

LVL については非常に興味があり、また近いうちに従来のプロテクトは廃止されることからかなり重要と捉えています
しかしながら、現在公式の LVL についてのリファレンスは英語しか存在せず、私のような英語の読めないものでは難解です
辞書や翻訳サイトを利用するも、めちゃくちゃな翻訳で内容を把握できない状態です

更に、現在 google などで検索した限りでは、LVL について具体的な適用方法を示した日本語記事は存在しません


大変勝手なお願いではありますが、もしお時間が出来ましたら LVL の簡易的な利用方法など示していただけると大変ありがたく思います

Re: LVL の日本語解説

コメントありがとうございます。
最初記事書こうと思いましたが、そもそものドキュメントがよくできていて、
それを読めば普通には動く状態に出来るため、やめました。
細かいことなどは色々ありますが、原文読めないようだと多分対応できないだろうなぁ
という思いもありますし・・・

ご返信ありがとうございました

英語が読めない状態で、「なんとなく」できてしまうものでは、不特定多数のユーザーに配布するのは気がひけます
それに、ドキュメントを理解するためだけに今から英語を修得するというのもおかしな話です

しかし、お手を煩わせるわけにはいきませんので、私が理解できる情報が揃うまで LVL の実装を保守することにしました

Re: タイトルなし

そうですね。なんとなくが一番危険です。
また同様に二次情報を元にするのも危ないかもしれないですね。
いざ対応が必要になった場合に困ります。

ただ、APIなども基本英語ですし、
ある程度・・・とはいっても中学レベルでどうにかなるとは思いますが、
多少は英語必要なのが悩ましいですね。

ちなみにですが、LVL自体はソースを取り込んで流用しますので、
LVLの動作などはソースを見ればどうにかなるところが多いです(サーバ側は別ですが)
また、動作に関しては取り込んだサンプルアプリもあるのでそちらを見たほうが、
英語で悩むよりは早いかもしれないですね。
スポンサードリンク
アプリ一覧
最新記事
最新コメント
最新トラックバック
検索フォーム
月別アーカイブ
カテゴリ
RSSリンクの表示
リンク
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。