2

フラグメント内のを使用しRecognizerて、リソースから取得した画像をスキャンしようとしています。問題は、コールバックを介して取得されたものが常に null であることです。で RecognitionSettings をセットアップしてみましたが、うまく機能したので、ライブラリは適切に統合されていると思います。これは私が使用しているソースコードです:RegerParserSettingsBaseRecognitionResultonScanningDoneMRTDRecognizer

@Override
public void onAttach(Context context) {
    ...

    try {
        mRecognizer = Recognizer.getSingletonInstance();
        mRecognizer.setLicenseKey(context, LICENSE_KEY);
    } catch (FeatureNotSupportedException | InvalidLicenceKeyException e) {
        Log.d(TAG, e.getMessage());
    }
    buildRecognitionSettings();
    mRecognizer.initialize(context, mRecognitionSettings, new DirectApiErrorListener() {
        @Override
        public void onRecognizerError(Throwable t) {
            //Handle exception

        }
    });
}

private void buildRecognitionSettings() {
        mRecognitionSettings = new RecognitionSettings();
        mRecognitionSettings.setRecognizerSettingsArray(setupSettingsArray());
}

private RecognizerSettings[] setupSettingsArray() {
        RegexParserSettings regexParserSettings = new RegexParserSettings("[A-Z0-9]{17}");
        BlinkOCRRecognizerSettings sett = new BlinkOCRRecognizerSettings();
        sett.addParser("myRegexParser", regexParserSettings);
        return new RecognizerSettings[] { sett };
}

次のように画像をスキャンします。

mRecognizer.recognizeBitmap(bitmap, Orientation.ORIENTATION_PORTRAIT, FragMicoblink.this);

そして、これはフラグメントで処理されるコールバックです

@Override
public void onScanningDone(RecognitionResults results) {
    BaseRecognitionResult[] dataArray = results.getRecognitionResults();

    //dataArray is null

    for(BaseRecognitionResult baseResult : dataArray) {
        if (baseResult instanceof BlinkOCRRecognitionResult) {
            BlinkOCRRecognitionResult result = (BlinkOCRRecognitionResult) baseResult;
            if (result.isValid() && !result.isEmpty()) {
                String parsedAmount = result.getParsedResult("myRegexParser");
                if (parsedAmount != null && !parsedAmount.isEmpty()) {
                    Log.d(TAG, "Result: " + parsedAmount);
                }
            }
        }
    }
}`

前もって感謝します!

4

1 に答える 1