From cbc156bc38d8b8eae7aef60cb186ab2b52fa701f Mon Sep 17 00:00:00 2001 From: wxr <wxr@hdlchina.com.cn> Date: 星期二, 16 七月 2024 13:59:56 +0800 Subject: [PATCH] 增加全部挂断 --- HDL-ON_Android/Scan.cs | 109 +++++++++++++++++++++++++++++++++++------------------- 1 files changed, 70 insertions(+), 39 deletions(-) diff --git a/HDL-ON_Android/Scan.cs b/HDL-ON_Android/Scan.cs index 01cbcb3..ee51da6 100644 --- a/HDL-ON_Android/Scan.cs +++ b/HDL-ON_Android/Scan.cs @@ -1,76 +1,90 @@ 锘縰sing System; using System.IO; +using Android.Content; using Shared; using ZXing.Mobile; namespace HDL_ON { - public class Scan + public class Scan: Java.Lang.Object,HDL_ON_Android.ScanActivity.ScanResult { public Scan() { } - static MobileBarcodeScanner scanner; - public static void OpenScan(Action<string> action) + + private static Scan ins; + + public static Scan Ins { - string cancel = "鍙栨秷"; - string flashText = ""; - string titleText = "浜岀淮鐮佹壂鎻�"; - if (Language.CurrentLanguage != "Chinese") + get { - cancel = "Cancel"; - flashText = ""; - titleText = "Scan"; + if (ins == null) + { + ins = new Scan(); + } + return ins; } + + } + + public string TipMsg = string.Empty; + + Action<string> resultAction; + static MobileBarcodeScanner scanner; + + + public void OpenScan(Action<string> action) + { + resultAction = action; ((BaseActivity)Shared.Application.Activity).SetCamera(async (obj) => { - if (obj) + if (obj)//鏉冮檺鏄惁鎵撳紑 { if (scanner == null) { - MobileBarcodeScanner.Initialize(Shared.Application.Activity.Application); - var mZXingCustomScanView = new ZXingCustomScanView(Shared.Application.Activity.Application); - mZXingCustomScanView.cancelTextView.Text = cancel; - mZXingCustomScanView.flashTextView.Text = flashText; - mZXingCustomScanView.titleTextView.Text = titleText; - var bOn = false; - scanner = new ZXing.Mobile.MobileBarcodeScanner() - { - UseCustomOverlay = true, - CustomOverlay = mZXingCustomScanView - }; - mZXingCustomScanView.OnCancel += () => - { + var intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.ScanActivity)); + Shared.Application.Activity.StartActivity(intent); - scanner?.Cancel(); - }; + HDL_ON_Android.ScanActivity.InitDdd(this); - mZXingCustomScanView.OnTorch += () => - { - bOn = !bOn; - scanner?.Torch(bOn); - }; } - - var result = await scanner.Scan(); - - if (result != null) - action?.Invoke(result.Text); - else - action?.Invoke(null); - } else { action?.Invoke(null); + Action action1 = () => { + Intent intent = new Intent(Android.Provider.Settings.ActionApplicationDetailsSettings); + intent.AddFlags(ActivityFlags.NewTask); + Android.Net.Uri uri = Android.Net.Uri.FromParts("package", Application.Activity.PackageName, null); + intent.SetData(uri); + Application.Activity.StartActivity(intent); + }; + if (string.IsNullOrEmpty(TipMsg)) + { + if (Language.CurrentLanguage == "Chinese") + { + new HDL_ON.UI.PublicAssmebly().TipOptionMsg(StringId.Tip, "鐩告満璁块棶鏉冮檺宸茶鎷掔粷锛岃鍓嶅線绯荤粺璁剧疆鎵撳紑鐩稿叧鏉冮檺銆�", action1); + } + else + { + new HDL_ON.UI.PublicAssmebly().TipOptionMsg(StringId.Tip, "Camera access has been denied. Please go to system settings to open relevant permissions.", action1); + } + } + else + { + new HDL_ON.UI.PublicAssmebly().TipOptionMsg(StringId.Tip, TipMsg,action1,45); + TipMsg = string.Empty; + } } }); } public static byte[] BytesFromText(string text, int width = 300, int height = 300) { + if (text == "") return null; + var barcodeWriter = new ZXing.Mobile.BarcodeWriter { Format = ZXing.BarcodeFormat.QR_CODE, @@ -122,5 +136,22 @@ // } // }); //} + + + //static void initFromCameraParameters(Android.Graphics.Camera camera) + //{ + // //camera.SetLocation + //} + + public void onResult(string result) + { + if (!string.IsNullOrEmpty( result)) + resultAction?.Invoke(result); + else + resultAction?.Invoke(null); + } } + + + } -- Gitblit v1.8.0