Я пытаюсь написать код для использования проводного USB-сканера на устройствах Android.Я попробовал ZXing для использования камеры, но он слишком медленный.
Я попробовал библиотеку для Java, и она отлично работает на Java.Прямо сейчас я хочу использовать эту библиотеку для построения приложения на Xamarin.Forms с помощью библиотеки привязок.Но я не знаком с Xamarin.Forms, поэтому есть ли какое-нибудь руководство, которое поможет мне преобразовать мой код в Xamarin.Form?
В Java я использовал следующий код для использования библиотеки.Я также приложил весь файл MainActivity и Jar.Заранее спасибо.
Основная деятельность https://ufile.io/2t83bb1d
Jar File https://ufile.io/b0xqifpc
private static final int HIDE_SERIAL_CTL_MSG = 1;
private static final int DEVICE_POWER_STATE_CHANGE_MSG = 2;
private static final int CLEAR_RESULT_MSG = 4;
private static String TAG = "ACT_QRScan";
USBQRscanFactory usbScan;
private Button btnLightSetting,
btnScan, btnContinuoutStart, btnPowerOnOff,
btnSetTimeOut;
private EditText etTimeOutSeconds;
private TextView mShow;
private TextView mTvstatus;
private ScanBroadcastReceiver scanBroadcastReceiver;
private boolean mWorkingStateFlag = false;
private boolean mPowerStateFlag = true;
private Context mCtx;
private Player mPlayer;
public void onCreate(Bundle savedInstanceState) {
if (null == mPlayer)
mPlayer = new Player();
mPlayer.init(mCtx, R.raw.done);
scanBroadcastReceiver = new ScanBroadcastReceiver(mPlayer, R.raw.done);
hideSerialCtls(true);
usbScan = USBQRscanFactory.createInstance();
private Intent getUSBScanService() {
// TODO Auto-generated method stub
Intent i = new Intent();
i.setAction("com.unistrong.qrcode.USBScanService");
i.setPackage(getApplication().getPackageName());
return i;
}
private void openScanner(boolean open) {
if (open == mWorkingStateFlag) return;
if (open) {
try {
Thread.sleep(50);
usbScan.open();
usbScan.enableAddKeyValue(0);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
if (null != usbScan) {
if (btnContinuoutStart.getTag().equals("1")) {
usbScan.continuousScan(false);
btnContinuoutStart.setTag("0");
btnContinuoutStart.setText(getString(R.string.str_continuous_scan_start));
}
usbScan.close();
}
H.sendEmptyMessage(CLEAR_RESULT_MSG);
}
}