5

そのため、ライセンスを確認するためにアプリケーションで Android LVL をセットアップしました。これは、テスト アカウントでうまく機能するようです。問題は、電話のインターネット接続をオフにしてアプリを実行しようとすると、ライセンス チェックが失敗し、ライセンスがないと通知されることです。

1 つのことは、アプリケーションがライセンスされていないことを教えてくれるのはなぜですか。さらに重要なのは、アプリケーションがライセンスされているかどうかを「記憶」させるにはどうすればよいかということです。

4

2 に答える 2

5

どうやらこれに対する答えは、ライセンスはテスト時にキャッシュされず、市場に出たときにキャッシュされるということです。これをテストするために小さなアプリを作成しましたが、動作します!

于 2010-10-12T12:05:55.603 に答える
4

申し訳ありませんが、機内モードではキャッシュに依存できなくなることも確認しています。理論的には、アプリがオンラインで、オフラインになる直前にライセンス サーバーに ping を実行した場合、機能する可能性があります。ただし、電話機がかなりの時間オフラインになっている場合、キャッシュ メカニズムはありません。コードを見てください。Android に対してバグを報告しました: http://code.google.com/p/android/issues/detail?id=12978

私のShout n' Snapのユーザーはshoutnsnap.comで、このばかげた行動をすでに確認しています。

クライアント側で 2 部構成のチャレンジを使用して回避策を作成しました。例えば:


IF LICENSED:
  PERSIST random key as LK
  PERSIST obfuscated random key as OLK
ELSE:
  if (deobfuscate(OLK) == LK) 
    GRANT ACCESS
  ELSE:
    GET LOST 

コードはこちら: http://code.google.com/p/androidbest/

于 2010-12-06T20:10:45.290 に答える