Авторизация
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
После регистрации вы можете задавать вопросы и отвечать на них, зарабатывая деньги. Ознакомьтесь с правилами, будем рады видеть вас в числе наших авторов!
Вы должны войти или зарегистрироваться, чтобы добавить ответ.
Для считывания QR-кода на устройствах Android можно использовать библиотеку ZXing (Zebra Crossing). Вот пример кода, который позволяет считать QR-код с помощью ZXing:
1. Добавьте зависимость ZXing в файл build.gradle (Module: app):
«`java
implementation ‘com.google.zxing:core:3.4.1’
implementation ‘com.journeyapps:zxing-android-embedded:3.6.0’
«`
2. Создайте активити, в которой будет происходить считывание QR-кода. Например, MainActivity.
3. В разметке активити добавьте SurfaceView, который будет использоваться для предпросмотра камеры:
«`xml
«`
4. В MainActivity добавьте следующий код:
«`java
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.Result;
import com.journeyapps.barcodescanner.BarcodeCallback;
import com.journeyapps.barcodescanner.BarcodeResult;
import com.journeyapps.barcodescanner.DecoratedBarcodeView;
import com.journeyapps.barcodescanner.DefaultDecoderFactory;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private static final int CAMERA_PERMISSION_REQUEST_CODE = 200;
private DecoratedBarcodeView barcodeView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
barcodeView = findViewById(R.id.barcode_scanner);
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_REQUEST_CODE);
} else {
startBarcodeScanner();
}
}
private void startBarcodeScanner() { formats = Arrays.asList(BarcodeFormat.QR_CODE);
Collection
barcodeView.getBarcodeView().setDecoderFactory(new DefaultDecoderFactory(formats));
barcodeView.decodeContinuous(new BarcodeCallback() {
@Override
public void barcodeResult(BarcodeResult result) {
if (result != null) {
String qrCodeValue = result.getText();
Toast.makeText(MainActivity.this, qrCodeValue, Toast.LENGTH_SHORT).show();
}
}
@Override resultPoints) {
public void possibleResultPoints(List
}
});
}
@Override
protected void onResume() {
super.onResume();
barcodeView.resume();
}
@Override
protected void onPause() {
super.onPause();
barcodeView.pause();
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == CAMERA_PERMISSION_REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
startBarcodeScanner();
} else {
Toast.makeText(this, «Camera permission required», Toast.LENGTH_SHORT).show();
}
}
}
}
«`
5. Запустите приложение и у вас будет возможность считывать QR-коды с помощью камеры вашего устройства Android.