Как отправить PlugInResult внутри lmageReaderListener для подключаемого модуля Cordova / Android? - PullRequest
0 голосов
/ 17 июня 2020

Я разрабатываю собственный плагин для cordova / ioni c, который будет получать кадры камеры и передавать их js как Base64, чтобы его можно было отображать на <img> или <canvas> и манипулировать им. при необходимости наберите css. Я протестировал весь код java в студии android, и он работает правильно. Также я использую Log.d("DATA", imageBase64Data), чтобы проверить, правильно ли конвертируется изображение, и это так. Моя проблема возникает, когда я хочу отправить данные с родного на js. потому что мне нужно отправить данные внутри слушателя. Это часть моего кода:

private final ImageReader.OnImageAvailableListener mOnImageAvailableListener = new ImageReader.OnImageAvailableListener() {
        @Override
        public void onImageAvailable(ImageReader reader) {
            Image image = null;
            try {
                image = reader.acquireNextImage();
                if (image != null) {
                    byte[] jpegData = ImageUtils.imageToByteArray(image); // converting to byte array
                    PluginResult result = new PluginResult(PluginResult.Status.OK, "Dummydata");
                    result.setKeepCallback(true);
                    callbackContext.sendPluginResult(result);// this is sent correctly
                    String data = Base64.encodeToString(jpegData, Base64.DEFAULT);
                    //if I put the same code below this line I get nothing.
                    image.close();
                }
            } catch (Exception e) {
                callbackContext.error("Error: "+e);
                Log.w("ERROR", e.getMessage());
            }
        }
    };

Кроме того, я не получаю никаких ошибок в Logcat. С другой стороны, на моей стороне js я использую наблюдаемый. Я использую собственную оболочку ioni c и следую их краткому руководству разработчика. функция обернута следующим образом:

@Cordova({
    observable: true,
    clearFunction: 'clearCamera'
  })
  OpenCamera(arg0: any): Observable<any> { return; }

Примечание: я использую этот плагин в проекте ionic / angular.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...