using System; using System.Collections.Generic; using System.Linq; using System.Text; using Android.App; using Android.Content; using Android.Content.PM; using Android.OS; using Android.Runtime; using Android.Support.V7.App; using Android.Views; using Android.Widget; using Com.Journeyapps.Barcodescanner; namespace HDL_ON_Android { [Activity(Label = "CustomCaptureActivity", Theme = "@style/MyTheme1", ScreenOrientation = ScreenOrientation.Portrait)] public class CustomCaptureActivity : AppCompatActivity//Activity { /** * 条形码扫描管理器 */ private CaptureManager mCaptureManager; /** * 条形码扫描视图 */ private DecoratedBarcodeView mBarcodeView; protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.activity_zxing_layout); mBarcodeView = (DecoratedBarcodeView)FindViewById(Resource.Id.zxing_barcode_scanner); mCaptureManager = new CaptureManager(this, mBarcodeView); mCaptureManager.InitializeFromIntent(this.Intent, savedInstanceState);//getIntent(), mCaptureManager.Decode(); } protected override void OnResume() { base.OnResume(); mCaptureManager.OnResume(); } protected override void OnPause() { base.OnPause(); mCaptureManager.OnPause(); } protected override void OnDestroy() { base.OnDestroy(); mCaptureManager.OnDestroy(); } protected override void OnSaveInstanceState(Bundle outState) { base.OnSaveInstanceState(outState); mCaptureManager.OnSaveInstanceState(outState); } /** * 权限处理 */ public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Permission[] grantResults) { int[] rg = new int[grantResults.Length] ; foreach(var g in grantResults) { rg.Append((int)g); } mCaptureManager.OnRequestPermissionsResult(requestCode, permissions, rg); } //public override void OnRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) //{ // mCaptureManager.onRequestPermissionsResult(requestCode, permissions, grantResults); //} /** * 按键处理 */ public override bool OnKeyDown([GeneratedEnum] Keycode keyCode, KeyEvent e) { //return base.OnKeyDown(keyCode, e); return mBarcodeView.OnKeyDown(keyCode, e) || base.OnKeyDown(keyCode, e); } //public boolean onKeyDown(int keyCode, KeyEvent event) { // return mBarcodeView.onKeyDown(keyCode, event) || super.onKeyDown(keyCode, event); //} } }