0

In line 3 there is if that check if text recognizer is operational or not and when I run program on my asus me371 mg tablet it will never go in else. It means text recognizer is never operational, what should I do?

TextRecognizer textRecognizer=new TextRecognizer.Builder(getApplicationContext()).build();

if (!textRecognizer.isOperational()) {
    Log.w("MainActivity", "Detector dependencies are not yet available");

} else {
    cameraSource = new CameraSource.Builder(getApplicationContext(), textRecognizer)
            .setFacing(CameraSource.CAMERA_FACING_BACK)
            .setRequestedPreviewSize(600, 400)
            .setRequestedFps(2.0f)
            .setAutoFocusEnabled(true)
            .build();
    cameraView.getHolder().addCallback(new SurfaceHolder.Callback() {
        @Override
        public void surfaceCreated(SurfaceHolder holder) {
            try {
                if (ActivityCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
                    ActivityCompat.requestPermissions(MainActivity.this,new String[]{android.Manifest.permission.CAMERA},ReqiestCameraPermissionID);
                    return;
                }
                cameraSource.start(cameraView.getHolder());


            }catch (IOException e){e.printStackTrace();}



        }

        @Override
        public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

        }

        @Override
        public void surfaceDestroyed(SurfaceHolder holder) {
            cameraSource.stop();

        }
    });
    textRecognizer.setProcessor(new Detector.Processor<TextBlock>() {
        @Override
        public void release() {

        }

        @Override
        public void receiveDetections(Detector.Detections<TextBlock> detections) {
            final SparseArray<TextBlock> items =detections.getDetectedItems();
            if (items.size()!=0){
                textView.post(new Runnable() {
                    @Override
                    public void run() {
                        StringBuilder stringBuilder =new StringBuilder();
                        for (int i =0 ; i<items.size();++i){
                            TextBlock item=items.valueAt(i);
                            stringBuilder.append(item.getValue());
                            stringBuilder.append("\n");
                        }
                        textView.setText(stringBuilder.toString());
                    }
                });
            }


        }
    });
}
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
ebrahim
  • 1
  • 1

1 Answers1

0

try to add this to your AndroidManifest.xml

<application
   android:allowBackup="true"
   android:icon="@mipmap/ic_launcher"
   android:label="@string/app_name"
   android:roundIcon="@mipmap/ic_launcher_round"
   android:supportsRtl="true"
   android:theme="@style/AppTheme">


<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
<meta-data
    android:name="com.google.android.gms.vision.DEPENDENCIES"
    android:value="ocr"/>