【发布时间】:2017-11-29 21:50:21
【问题描述】:
在这个sample Android program中,设备的摄像头用于通过com.google.android.gms:play-services-vision库进行光学字符识别。
在visionSamples\ocr-codelab\ocr-reader-complete\app\src\main\java\com\google\android\gms\samples\vision\ocrreader\OcrDetectorProcessor.receiveDetections() 中,我可以看到使用日志记录识别的文本:
Log.d("OcrDetectorProcessor", "Text detected! " + item.getValue());
以上进程由OcrCaptureActivity启动:
TextRecognizer textRecognizer.setProcessor(new OcrDetectorProcessor(mGraphicOverlay));
CameraSource mCameraSource = new CameraSource.Builder(getApplicationContext(), textRecognizer)/* snip */.build();
CameraSourcePreview mPreview = (CameraSourcePreview) findViewById(R.id.preview);
mPreview.start(mCameraSource, mGraphicOverlay);
所以我们看到上面的“东西”不是你启动活动的典型方式。
这个问题是关于如何将结果从 OcrDetectorProcessor 返回到 OcrCaptureActivity。
我尝试将onActivityResult() 添加到OcrCaptureActivity,但它不会触发:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.v(TAG, ">>>>>>> OnActivityResult intent: " + data);
}
因为OcrDetectorProcessor 不是Activity,我不能简单地创建一个新的Intent 并使用setResult() 方法。
有一个 OcrDetectorProcessor.release() 方法,它在正确的时间运行(当按下 Android 后退按钮时),但我不确定如何让它与父进程通信。
【问题讨论】:
标签: android android-intent android-camera ocr onactivityresult