Привет, у меня проблема, и я надеюсь, что вы мне поможете.
Я использую android studio, чтобы создать приложение для считывания штрих-кода, а затем показать нужный элемент в представлении переработчика
когда я правильно читаю код, он показывает правильный элемент (полсекунды), но когда он читает код неправильно, он застревает на нем, и если я правильно прочитал код, то через некоторое время (30 секунд) он показывает вещь
иногда после неправильного прочтения никогда не показывает элемент, пока не перезапустит приложение
Я использую Firebase, чтобы получить информацию об элементе и даже URL для изображения
это часть кода
cameraPreview.getHolder().addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
if (ActivityCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
//Request permission
ActivityCompat.requestPermissions(SearchActivity.this,
new String[]{android.Manifest.permission.CAMERA},RequestCameraPermissionID);
return;
}
try {
cameraSource.start(cameraPreview.getHolder());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
}
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
cameraSource.stop();
}
});
//////
barcodeDetector.setProcessor(new Detector.Processor<Barcode>() {
@Override
public void release() {
}
@Override
public void receiveDetections(Detector.Detections<Barcode> detections) {
final SparseArray<Barcode> qrcodes = detections.getDetectedItems();
if(qrcodes.size() != 0)
{
txtResult.post(new Runnable() {
@Override
public void run() {
//Create vibrate
Vibrator vibrator = (Vibrator)getApplicationContext().getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(1000);
txtResult.setText(qrcodes.valueAt(0).displayValue);
startSearchEan(txtResult.getText().toString());
}
});
Log.d("BARCODEE", "run: "+txtResult.getText());
}
}
});
private void startSearchEan(String text) {
searchAdapter = new FirebaseRecyclerAdapter<Articulo, ArticuloViewHolder>(
Articulo.class,
R.layout.articulos_item,
ArticuloViewHolder.class,
articuloList.orderByChild("Codebar").equalTo(text)
) {
@Override
protected void populateViewHolder(ArticuloViewHolder viewHolder, Articulo model, int position) {
viewHolder.articulo_name.setText(model.getName());
//Glide.with(getBaseContext()).load(model.getImage()).into(viewHolder.articulo_image);
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.displayImage(model.getImage(),viewHolder.articulo_image);
final Articulo local = model;
viewHolder.setItemClickListener(new ItemClickListener() {
@Override
public void onClick(View view, int position, boolean isLongClick) {
Intent articuloDetail = new Intent(SearchActivity.this,ArticuloDetail.class);
articuloDetail.putExtra("ArticuloId",searchAdapter.getRef(position).getKey());
startActivity(articuloDetail);
}
});
}
};
recyclerView.setAdapter(searchAdapter);
}
заранее спасибо
Привет