4

アプリに LVL を実装しました。最初に、開発者アカウント設定で「LICENSED」へのテスト応答を設定しました => すべて正常に動作します。私はこの答えを受け取ります。

テスト応答を「NOT_LICENSED」に変更すると、開発者アカウントで値を変更してから 2 時間後でも、アプリで「LICENSED」という結果が得られます。

この問題を解決する方法はありますか?

4

1 に答える 1

4

ご存知のように、すでに1つのコメントに書き込んでいるように、ServerManagedPolicyにはキャッシュがあります。つまり、肯定的な応答を受け取った後は、それが有効である限り、この応答が取得されます。接続している場合でも、最後の肯定応答の有効期間中、アプリはライセンスサーバーに接続しません。キャッシングはオフラインで使用するだけでなく、時間のかかるネットワーククエリを回避するためにも使用されます。

すべきことは次のとおりです。ServerManagedPolicyの代わりに

mChecker = new LicenseChecker(this,//
                new ServerManagedPolicy(this,
                new AESObfuscator(SALT,getPackageName(),
                deviceId)), //
                BASE64_PUBLIC_KEY // The public licensing key.
        );

StrictPolicyを使用する

mChecker = new LicenseChecker(this, new StrictPolicy(), BASE64_PUBLIC_KEY);

それが機能するかどうか試してみてください。テストが終了したら、元に戻して、ユーザーがServerManagedPolicyのキャッシュから利益を得ることができるようにします。

于 2012-06-23T14:43:27.960 に答える