Phonegap アプリの読み込みを開始するときに、非同期スレッドで Android の LVL ライセンス検証を開始する方法を知りたいです。検証の結果が「アクセスなし」の場合は、アプリを閉じてください。私は、通常の一度に 1 ステップずつセットアップするよりも、このロジックを好みます。LVL にはかなりの数秒かかりますが、ライセンスを持っていない悪意のあるユーザーがアプリを閉じる前に数秒間そのアプリを見ることができたとしても、それは問題ではありません。
問題は、私が Java にあまり詳しくないことです。
私のアプリ Google Play で公開されている PhoneGap (Cordova) 有料アプリを持っています。LVL 検証を使用して、アプリがユーザーによって支払われたかどうかを確認します。チェックに約5秒かかることを除いて、魅力のように機能します。多くの場合、スプラッシュ スクリーンでさえ数秒間表示されません。
したがって、ユーザーは 5 秒間黒い画面で立ち往生し、Java コードのロード中にスプラッシュ画面が表示され、最後に Java スクリプトが完了するまでデフォルトの淡色表示のホーム画面が表示されます。そのため、この起動遅延を短縮することに非常に意欲的です。
非同期アプローチの使用を提案するコメントをいくつか読みました。URL のロードをすぐに開始し、ライセンス チェックを asyncTask として実行します。しかし、ライセンスが無効な場合に WebView を閉じるために WebView を asyncTask に渡す方法がわかりません。
初挑戦ライセンスチェック自体が非同期なので、スプラッシュスクリーンを設定してURLを読み込んでからライセンスチェックをしてみました。以下のコードを参照してください。チェックが「許可されていません」を返した場合、コールバックはアプリを閉じる必要があります。ただし、この設定を試してみると、Google Play で強制応答を「無効」または「不明」などに設定しても、LVL サーバーは常に「有効」を返します。
私は A か B のどちらかを探しています: A. LVL を正しく応答させる方法。B. 非同期ライセンス チェックを実装する別の方法。
以下のコードは、現在のコードを抽象化したものです。DroidGap は Web ビューです。基本的に、onCreate はライセンス チェックを開始し、ライセンス チェック コールバックはアプリの HTML をロードするか、Web ビューを閉じます。
public class App extends DroidGap {
public void onCreate(Bundle icicle) {
super.setIntegerProperty("splashscreen", R.drawable.splash);
super.loadUrl("file:///android_asset/www/index.html");
mCheckerCallback = new LicenseCheckerCallback();
checkAccess(mCheckerCallback);
}
private class MyCheckerCallback implements LicenseCheckerCallback() {
public void Allow() {
//Do nothing
}
public void DontAllow(){
finish();
}
}