Android I/HwPointEventFilter:不支持AFT,因为没有配置

Android I/HwPointEventFilter:不支持AFT,因为没有配置,android,android-camera2,google-cloud-vision,huawei-mobile-services,huawei-developers,Android,Android Camera2,Google Cloud Vision,Huawei Mobile Services,Huawei Developers,当我开发一个文本扫描应用程序时,我遇到了一个问题,那就是当我试图用我的华为手机上冻结的摄像头抓拍扫描/识别文本时。但它在其他安卓设备上运行良好 为什么? 这是logcat味精 省略时间和项目包名称 I/CameraManagerGlobal: Connecting to camera service I/HwPointEventFilter: do not support AFT because of no config I/SendBroadcastPermission: action:hua

当我开发一个文本扫描应用程序时,我遇到了一个问题,那就是当我试图用我的华为手机上冻结的摄像头抓拍扫描/识别文本时。但它在其他安卓设备上运行良好 为什么?

这是logcat味精 省略时间和项目包名称

I/CameraManagerGlobal: Connecting to camera service
I/HwPointEventFilter: do not support AFT because of no config
I/SendBroadcastPermission: action:huawei.intent.action.APS_TOUCH_ACTION_DOWN, mPermissionType:0
I/SendBroadcastPermission: action:huawei.intent.action.APS_TOUCH_ACTION_UP, mPermissionType:0
public class CameraActivity extends AppCompatActivity implements View.OnClickListener {
    private CameraKitView cameraKitView;
    private ImageView btn_capture, btn_flashlight;
    private String flashMode = "";
    private AlertDialog dialog;
    private Context mContext;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_camera);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        Objects.requireNonNull(getSupportActionBar()).hide();
        mContext = this;

        cameraKitView = findViewById(R.id.camera);
        btn_capture = findViewById(R.id.btn_capture);
        btn_flashlight = findViewById(R.id.btn_flashlight);
        cameraKitView.requestPermissions(this);


        flashMode = SharedHelper.getKey(this, "flashMode");

        if (flashMode.isEmpty() || flashMode.equals("off")) {
            flashMode = "off";
            flash("off");
        }

        flash(flashMode);

        btn_flashlight.setOnClickListener(this);
        btn_capture.setOnClickListener(this);


        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setCancelable(false);
        builder.setTitle(R.string.processing);
        builder.setView(R.layout.loading_dialoag);
        dialog = builder.create();


    }


    public void flash(String mode) {
        switch (mode) {
            case "off":
                cameraKitView.setFlash(CameraKit.FLASH_OFF);
                btn_flashlight.setImageDrawable(getDrawable(R.drawable.ic_flash_off_white_24dp));
                break;
            case "on":
                cameraKitView.setFlash(CameraKit.FLASH_ON);
                btn_flashlight.setImageDrawable(getDrawable(R.drawable.ic_flash_on_white_24dp));
                break;
            case "auto":
                cameraKitView.setFlash(CameraKit.FLASH_AUTO);
                btn_flashlight.setImageDrawable(getDrawable(R.drawable.ic_flash_auto_white_24dp));
                break;
        }

    }


    @Override
    protected void onStart() {
        super.onStart();
        cameraKitView.onStart();
    }

    @Override
    protected void onResume() {
        super.onResume();
        cameraKitView.onResume();
    }

    @Override
    protected void onPause() {
        cameraKitView.onPause();
        super.onPause();
    }

    @Override
    protected void onStop() {
        cameraKitView.onStop();
        super.onStop();
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_DENIED) {
            Toast.makeText(this, "You must allow permission to use the camera", Toast.LENGTH_SHORT).show();
            finish();
        }

        cameraKitView.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }


    @Override
    public void onClick(View view) {
        if (view == btn_capture) {
            cameraKitView.captureImage(new CameraKitView.ImageCallback() {
                @Override
                public void onImage(CameraKitView cameraKitView, final byte[] capturedImage) {
                    // capturedImage contains the image from the CameraKitView.
                    captureSound();
                    BitmapFactory.Options opts = new BitmapFactory.Options();
                    Bitmap bitmap = BitmapFactory.decodeByteArray(capturedImage, 0, capturedImage.length, opts);
                    FirebaseVisionImage image = FirebaseVisionImage.fromBitmap(bitmap);
                    imageProcessor(image);
                    dialog.show();
                    cameraKitView.onStop();


                }
            });

        } else if (view == btn_flashlight) {
            switch (flashMode) {
                case "off":
                    flashMode = "on";
                    flash("on");
                    SharedHelper.putKey(this, "flashMode", "on");
                    break;
                case "on":
                    flashMode = "auto";
                    flash("auto");
                    SharedHelper.putKey(this, "flashMode", "auto");
                    break;
                case "auto":
                    flashMode = "off";
                    flash("off");
                    SharedHelper.putKey(this, "flashMode", "off");
                    break;
            }


        }
    }

    public void imageProcessor(FirebaseVisionImage image) {
        FirebaseVisionDocumentTextRecognizer detector = FirebaseVision.getInstance()
                .getCloudDocumentTextRecognizer();

        detector.processImage(image)
                .addOnSuccessListener(new OnSuccessListener<FirebaseVisionDocumentText>() {
                    @Override
                    public void onSuccess(FirebaseVisionDocumentText result) {
                        dialog.dismiss();
                        Intent intent = new Intent(CameraActivity.this, TextActivity.class);
                        intent.putExtra("result", result.getText());
                        startActivity(intent);
                        overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
                        finish();

                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        dialog.dismiss();
                        AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
                        builder.setTitle("Processing Failed");
                        builder.setMessage(e.getLocalizedMessage());

                        builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                cameraKitView.onStart();
                                cameraKitView.onResume();
                            }
                        }).show();
                    }
                });

    }

    public void captureSound(){
        AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
        switch( audio.getRingerMode() ){
            case AudioManager.RINGER_MODE_NORMAL:
                MediaActionSound sound = new MediaActionSound();
                sound.play(MediaActionSound.SHUTTER_CLICK);
                break;
            case AudioManager.RINGER_MODE_SILENT:
                break;
            case AudioManager.RINGER_MODE_VIBRATE:
                break;
        }
    }
}
清单文件

  <activity
        android:name=".CameraActivity"
        android:screenOrientation="portrait">
 </activity>

这是我的CameraActivity.java

省略导入和包名称

I/CameraManagerGlobal: Connecting to camera service
I/HwPointEventFilter: do not support AFT because of no config
I/SendBroadcastPermission: action:huawei.intent.action.APS_TOUCH_ACTION_DOWN, mPermissionType:0
I/SendBroadcastPermission: action:huawei.intent.action.APS_TOUCH_ACTION_UP, mPermissionType:0
public class CameraActivity extends AppCompatActivity implements View.OnClickListener {
    private CameraKitView cameraKitView;
    private ImageView btn_capture, btn_flashlight;
    private String flashMode = "";
    private AlertDialog dialog;
    private Context mContext;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_camera);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        Objects.requireNonNull(getSupportActionBar()).hide();
        mContext = this;

        cameraKitView = findViewById(R.id.camera);
        btn_capture = findViewById(R.id.btn_capture);
        btn_flashlight = findViewById(R.id.btn_flashlight);
        cameraKitView.requestPermissions(this);


        flashMode = SharedHelper.getKey(this, "flashMode");

        if (flashMode.isEmpty() || flashMode.equals("off")) {
            flashMode = "off";
            flash("off");
        }

        flash(flashMode);

        btn_flashlight.setOnClickListener(this);
        btn_capture.setOnClickListener(this);


        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setCancelable(false);
        builder.setTitle(R.string.processing);
        builder.setView(R.layout.loading_dialoag);
        dialog = builder.create();


    }


    public void flash(String mode) {
        switch (mode) {
            case "off":
                cameraKitView.setFlash(CameraKit.FLASH_OFF);
                btn_flashlight.setImageDrawable(getDrawable(R.drawable.ic_flash_off_white_24dp));
                break;
            case "on":
                cameraKitView.setFlash(CameraKit.FLASH_ON);
                btn_flashlight.setImageDrawable(getDrawable(R.drawable.ic_flash_on_white_24dp));
                break;
            case "auto":
                cameraKitView.setFlash(CameraKit.FLASH_AUTO);
                btn_flashlight.setImageDrawable(getDrawable(R.drawable.ic_flash_auto_white_24dp));
                break;
        }

    }


    @Override
    protected void onStart() {
        super.onStart();
        cameraKitView.onStart();
    }

    @Override
    protected void onResume() {
        super.onResume();
        cameraKitView.onResume();
    }

    @Override
    protected void onPause() {
        cameraKitView.onPause();
        super.onPause();
    }

    @Override
    protected void onStop() {
        cameraKitView.onStop();
        super.onStop();
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_DENIED) {
            Toast.makeText(this, "You must allow permission to use the camera", Toast.LENGTH_SHORT).show();
            finish();
        }

        cameraKitView.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }


    @Override
    public void onClick(View view) {
        if (view == btn_capture) {
            cameraKitView.captureImage(new CameraKitView.ImageCallback() {
                @Override
                public void onImage(CameraKitView cameraKitView, final byte[] capturedImage) {
                    // capturedImage contains the image from the CameraKitView.
                    captureSound();
                    BitmapFactory.Options opts = new BitmapFactory.Options();
                    Bitmap bitmap = BitmapFactory.decodeByteArray(capturedImage, 0, capturedImage.length, opts);
                    FirebaseVisionImage image = FirebaseVisionImage.fromBitmap(bitmap);
                    imageProcessor(image);
                    dialog.show();
                    cameraKitView.onStop();


                }
            });

        } else if (view == btn_flashlight) {
            switch (flashMode) {
                case "off":
                    flashMode = "on";
                    flash("on");
                    SharedHelper.putKey(this, "flashMode", "on");
                    break;
                case "on":
                    flashMode = "auto";
                    flash("auto");
                    SharedHelper.putKey(this, "flashMode", "auto");
                    break;
                case "auto":
                    flashMode = "off";
                    flash("off");
                    SharedHelper.putKey(this, "flashMode", "off");
                    break;
            }


        }
    }

    public void imageProcessor(FirebaseVisionImage image) {
        FirebaseVisionDocumentTextRecognizer detector = FirebaseVision.getInstance()
                .getCloudDocumentTextRecognizer();

        detector.processImage(image)
                .addOnSuccessListener(new OnSuccessListener<FirebaseVisionDocumentText>() {
                    @Override
                    public void onSuccess(FirebaseVisionDocumentText result) {
                        dialog.dismiss();
                        Intent intent = new Intent(CameraActivity.this, TextActivity.class);
                        intent.putExtra("result", result.getText());
                        startActivity(intent);
                        overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
                        finish();

                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        dialog.dismiss();
                        AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
                        builder.setTitle("Processing Failed");
                        builder.setMessage(e.getLocalizedMessage());

                        builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                cameraKitView.onStart();
                                cameraKitView.onResume();
                            }
                        }).show();
                    }
                });

    }

    public void captureSound(){
        AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
        switch( audio.getRingerMode() ){
            case AudioManager.RINGER_MODE_NORMAL:
                MediaActionSound sound = new MediaActionSound();
                sound.play(MediaActionSound.SHUTTER_CLICK);
                break;
            case AudioManager.RINGER_MODE_SILENT:
                break;
            case AudioManager.RINGER_MODE_VIBRATE:
                break;
        }
    }
}
公共类CameraActivity扩展AppCompatActivity实现View.OnClickListener{
私人摄像机视图摄像机视图;
私人图像查看btn_捕获,btn_手电筒;
私有字符串flashMode=“”;
私人警报对话框;
私有上下文;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_摄像头);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,
WindowManager.LayoutParams.FLAG(全屏);
Objects.requirennull(getSupportActionBar()).hide();
mContext=这个;
cameraKitView=findViewById(R.id.camera);
btn_capture=findviewbyd(R.id.btn_capture);
btn_手电筒=findViewById(R.id.btn_手电筒);
cameraKitView.requestPermissions(此);
flashMode=SharedHelper.getKey(这是“flashMode”);
if(flashMode.isEmpty()| | flashMode.equals(“off”)){
flashMode=“关闭”;
闪光(“关”);
}
闪光(闪光模式);
btn_flashlight.setOnClickListener(此);
btn_capture.setOnClickListener(这个);
AlertDialog.Builder=新建AlertDialog.Builder(此);
builder.setCancelable(false);
builder.setTitle(R.string.processing);
builder.setView(R.layout.loading_dialoag);
dialog=builder.create();
}
公共无效闪存(字符串模式){
开关(模式){
案例“关闭”:
cameraKitView.setFlash(CameraKit.FLASH_关闭);
btn_手电筒。可设置图像可绘制(可绘制(R.drawable.ic_flash_off_white_24dp));
打破
案例“关于”:
cameraKitView.setFlash(CameraKit.FLASH_打开);
btn_手电筒。可设置图像可绘制(可绘制(R.drawable.ic_flash_on_white_24dp));
打破
案例“自动”:
cameraKitView.setFlash(CameraKit.FLASH\u AUTO);
btn_手电筒。可设置图像可绘制(可绘制(R.drawable.ic_flash_auto_white_24dp));
打破
}
}
@凌驾
受保护的void onStart(){
super.onStart();
cameraKitView.onStart();
}
@凌驾
受保护的void onResume(){
super.onResume();
cameraKitView.onResume();
}
@凌驾
受保护的void onPause(){
cameraKitView.onPause();
super.onPause();
}
@凌驾
受保护的void onStop(){
cameraKitView.onStop();
super.onStop();
}
@凌驾
public void onRequestPermissionsResult(int-requestCode、字符串[]权限、int[]grantResults){
super.onRequestPermissionsResult(请求代码、权限、授权结果);
if(grantResults.length>0&&grantResults[0]==PackageManager.PERMISSION\u被拒绝){
Toast.makeText(这是“您必须允许使用相机的权限”,Toast.LENGTH_SHORT).show();
完成();
}
cameraKitView.onRequestPermissionsResult(请求代码、权限、GrantResult);
}
@凌驾
公共void onClick(视图){
如果(视图==btn\U捕获){
cameraKitView.captureImage(新的cameraKitView.ImageCallback(){
@凌驾
公共无效onImage(CameraKitView CameraKitView,最终字节[]capturedImage){
//CaptureDiImage包含来自CameraKitView的图像。
captureSound();
BitmapFactory.Options opts=新的BitmapFactory.Options();
位图位图=位图工厂.decodeByteArray(capturedImage,0,capturedImage.length,opts);
FirebaseVisionImage=FirebaseVisionImage.fromBitmap(位图);
图像处理器(图像);
dialog.show();
cameraKitView.onStop();
}
});
}else if(视图==btn\U手电筒){
开关(闪光模式){
案例“关闭”:
flashMode=“on”;
闪光(“on”);
SharedHelper.putKey(此为“flashMode”,“on”);
打破
案例“关于”:
flashMode=“自动”;
闪光(“自动”);
SharedHelper.putKey(这是“flashMode”、“auto”);
打破
案例“自动”:
flashMode=“关闭”;
闪光(“关”);
SharedHelper.putKey(此选项为“flashMode”、“off”);
打破
}
}
}
公共void图像处理器(FirebaseVisionImage图像){
FireBaseVisionDocumentTextRecognitor检测器=FirebaseVision.getInstance()
.getCloudDocumentTextRecognizer();
检测器。处理图像(图像)
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共无效(FirebaseVisionDocumentText结果){
dialog.dismise();
意向意向=新意向(CameraActivity.this、TextActivity.class);
intent.putExtra(“result”,result.getText());
星触觉(意向);
覆盖转换(R.anim.push\u left\u in,R.anim.push\u left\u out);
完成();
}
})
.addOnFailureListener(新的OnFailureListener(){