Код для использования проводного USB-сканера в Xamarin.Forms - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь написать код для использования проводного 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);
    }
}
...