android: use embedded QR scanner for borrow/return

main
SLMS Development Team 5 months ago
parent 3bd0e20316
commit c66eb02adf

@ -112,6 +112,8 @@ dependencies {
implementation 'androidx.camera:camera-camera2:1.3.1'
implementation 'androidx.camera:camera-lifecycle:1.3.1'
implementation 'androidx.camera:camera-view:1.3.1'
implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
implementation 'com.google.zxing:core:3.5.0'
// implementation project(':backend') // backendSpring BootAndroid
testImplementation 'junit:junit:4.13.2'

@ -25,6 +25,7 @@ import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.zxing.integration.android.IntentIntegrator;
import com.smartlibrary.R;
import com.smartlibrary.android.ai.VoiceService;
import com.smartlibrary.android.data.DataManager;
@ -1611,13 +1612,17 @@ public class MainActivity extends AppCompatActivity {
private void startScan(int requestCode) {
try {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, requestCode);
} catch (Exception e) {
IntentIntegrator integrator = new IntentIntegrator(this);
integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE);
integrator.setOrientationLocked(false);
integrator.setBeepEnabled(true);
integrator.setPrompt("对准图书二维码进行扫描");
integrator.setRequestCode(requestCode);
integrator.initiateScan();
} catch (Throwable t) {
new AlertDialog.Builder(this)
.setTitle("未找到扫码应用")
.setMessage("请先安装支持二维码扫描的应用(如 ZXing Barcode Scanner然后重新尝试扫码借阅/还书;或在图书列表中手动操作。")
.setTitle("扫码功能不可用")
.setMessage("初始化内置扫码功能失败,请检查相机权限,或在图书列表中手动操作借阅/还书。")
.setPositiveButton("确定", null)
.show();
}

Loading…
Cancel
Save