Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mobile vision未检测到二维码_Java_Android_Android Layout_Camera_Qr Code - Fatal编程技术网

Java Mobile vision未检测到二维码

Java Mobile vision未检测到二维码,java,android,android-layout,camera,qr-code,Java,Android,Android Layout,Camera,Qr Code,我正在尝试将二维码扫描功能添加到我的应用程序中。我用谷歌视觉检测二维码。但是,它无法检测代码。即使Detector.isOperational()返回true,但什么也没有发生。我猜预览质量很难扫描QR,这就是它失败的原因。 代码如下。多谢各位 package com.example.tng import androidx.appcompat.app.AppCompatActivity; import android.graphics.SurfaceTexture; import

我正在尝试将二维码扫描功能添加到我的应用程序中。我用谷歌视觉检测二维码。但是,它无法检测代码。即使Detector.isOperational()返回true,但什么也没有发生。我猜预览质量很难扫描QR,这就是它失败的原因。 代码如下。多谢各位

package com.example.tng

import androidx.appcompat.app.AppCompatActivity;

   import android.graphics.SurfaceTexture;

   import android.hardware.Camera;

   import android.os.Bundle;

   import android.util.SparseArray;

   import android.view.Gravity;

   import android.view.TextureView;

   import android.widget.TextView;

   import android.widget.Toast;

   import com.google.android.gms.vision.Detector;

   import com.google.android.gms.vision.barcode.Barcode;

   import com.google.android.gms.vision.barcode.BarcodeDetector;

   public class ScanQR extends AppCompatActivity implements TextureView.SurfaceTextureListener{

TextureView textureView;

   TextureView textureView;

   TextView displayResult;

   BarcodeDetector detector;

   @Override

   protected void onCreate(Bundle savedInstanceState) {

   super.onCreate(savedInstanceState);

   setContentView(R.layout.activity_scan_q_r);

   displayResult = findViewById(R.id.alignQR);

   textureView = findViewById(R.id.texture_view);

   textureView.setSurfaceTextureListener(this);

   detector = new BarcodeDetector.Builder(this).

   setBarcodeFormats(Barcode.QR_CODE).

   build();

   try {

   if (detector.isOperational()) {

   displayResult.setText("it works");

   } else {

   displayResult.setText("Nope");

   }

   }

   catch (Exception e){

   Toast test = Toast.makeText(this,e.toString(),Toast.LENGTH_LONG);

   test.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);



test.show();
    }

   }

       @Override


       public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {

       try{

       cam = Camera.open();

       test.show();


   }

   @Override

   public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {

   try{

   cam = Camera.open();

   cam.setPreviewTexture(surface);

   cam.setDisplayOrientation(90);

   cam.startPreview();

   detector.setFocus(1);

   detector.setProcessor(new Detector.Processor<Barcode>(){

   @Override

   public void release() {

   }

   @Override

   public void receiveDetections(Detector.Detections<Barcode> detections) {

   final SparseArray<Barcode> barcodes = detections.getDetectedItems();

   if(barcodes.size() != 0){

   displayResult.post(new Runnable() {

   @Override

       public void run() {

   displayResult.setText(barcodes.valueAt(0).displayValue);

   }

   });

   }

   }

   });

   }

   catch(Exception camException){

   Toast.makeText(this,camException.toString(),Toast.LENGTH_LONG).show();

   }

   }

   @Override

   public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {

   }

   @Override

   public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {

   cam.stopPreview();

   return false;

   }

   @Override

   public void onSurfaceTextureUpdated(SurfaceTexture surface) {

    }

}
导入androidx.appcompat.app.appcompat活动;
导入android.graphics.SurfaceTexture;
导入android.hardware.Camera;
导入android.os.Bundle;
导入android.util.SparseArray;
导入android.view.Gravity;
导入android.view.TextureView;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.google.android.gms.vision.Detector;
导入com.google.android.gms.vision.barcode.barcode;
导入com.google.android.gms.vision.barcode.barcode检测器;
公共类ScanQR扩展AppCompatActivity实现TextureView.SurfaceTextRelistener{
纹理视图纹理视图;
纹理视图纹理视图;
文本视图显示结果;
条码检测器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u scan\u q\R);
displayResult=findViewById(R.id.alignQR);
textureView=findViewById(R.id.texture\u视图);
textureView.setSurfaceTextureListener(此);
检测器=新的条形码检测器.Builder(此)。
setBarcodeFormats(条形码、QR\U码)。
build();
试一试{
if(检测器等操作()){
displayResult.setText(“它工作”);
}否则{
displayResult.setText(“Nope”);
}
}
捕获(例外e){
Toast test=Toast.makeText(例如,toString(),Toast.LENGTH\u LONG);
测试。设置重力(重力。上|重力。左,0,0);
test.show();
}
}
@凌驾
SurfaceTextureAvailable上的公共空心(SurfaceTexture曲面、整型宽度、整型高度){
试一试{
cam=摄影机。打开();
test.show();
}
@凌驾
SurfaceTextureAvailable上的公共空心(SurfaceTexture曲面、整型宽度、整型高度){
试一试{
cam=摄影机。打开();
cam.setPreviewTexture(曲面);
凸轮设置显示方向(90);
cam.startPreview();
探测器。设置焦点(1);
detector.setProcessor(新的detector.Processor(){
@凌驾
公开无效释放(){
}
@凌驾
公共空隙接收检测(检测器。检测){
最终SparseArray条形码=检测。getDetectedItems();
如果(条形码大小()!=0){
displayResult.post(新的Runnable(){
@凌驾
公开募捐{
displayResult.setText(条形码.valueAt(0).displayValue);
}
});
}
}
});
}
捕获(异常CAMEException){
Toast.makeText(this,camException.toString(),Toast.LENGTH_LONG).show();
}
}
@凌驾
SurfaceTextureSizeChanged上的公共空心(SurfaceTexture surface,int-width,int-height){
}
@凌驾
公共布尔onSurfaceTextureDestroyed(SurfaceTexture曲面){
cam.stopPreview();
返回false;
}
@凌驾
已更新SurfaceTexture上的公共空间(SurfaceTexture surface){
}
}

你能上传正确格式的代码吗?在Android Studio的左侧有你的文件树->右键单击你的文件->重新格式化代码,但是没有“重新格式化代码”文件层次结构中的选项,当您在ScanQr类中并按下此处找到的快捷方式时,是否会发生任何事情:您现在可以看到我的代码,并且我已经按照您所说的正确格式化了它。