0

Zxingライブラリを使用してQRコードを読み取るAndroidアプリケーションを開発しています。これでほぼ完了し、質問は1つだけ残っています。

特定のイベントの後、10秒間スキャンを停止するアプリが必要です。スレッドを10秒間スリープさせましたが、それは私が望んでいた方法ではありません。すべてが正常であるように動作するようにアプリを作成したいと思います。ただし、何もスキャンしていないことをユーザーに通知するべきではありません。

その方法を説明していただけますか。タイマー方式が使えます。しかし、Zxingのどのメソッドを10秒間停止する必要がありますか?

4

2 に答える 2

0

ファイルInactivityTimer.javaを確認してください。次の行があります。

private static final int INACTIVITY_DELAY_SECONDS = 5 * 60;

タイムアウトが 5 分に設定されていることがわかります。この値を変更するだけです。

于 2013-01-18T18:55:32.743 に答える
0

期待通りに動作させました。すべてのデコード処理はhandleDecode、Capture アクティビティ クラスのメソッドによって行われます。だから私は内部でブール変数を初期化しましたonCreate

boolean isTensecondsFinished = ture;

次に、isTensecondsFinishedQR コードをデコードするための変数を確認します。ちょうどこのような、

public void handleDecode(Result rawResult, Bitmap barcode) {
    inactivityTimer.onActivity();
    lastResult = rawResult;
    ResultHandler resultHandler = ResultHandlerFactory.makeResultHandler(
            this, rawResult);

    boolean fromLiveScan = barcode != null;
    if (fromLiveScan) {
        // historyManager.addHistoryItem(rawResult, resultHandler);
        // Then not from history, so beep/vibrate and we have an image to
        // draw on
        if (isTenSecondsFinished) {
            isTenSecondsFinished = false;
            Timer tenSecondsTimer = new Timer();
            tenSecondsTimer.schedule(new TimerTask() {

                @Override
                public void run() {
                    isTenSecondsFinished = true;

                }
            }, 10 * 1000);
                            //Do the decoding stuff here then.
                    }
            }
}

これが最も簡単な解決策だと思います。

于 2013-02-24T13:59:56.147 に答える