通过Xamarin实现东大集成PDA的扫码

您所在的位置:网站首页 二维码扫一扫一键报警怎么设置的 通过Xamarin实现东大集成PDA的扫码

通过Xamarin实现东大集成PDA的扫码

2024-07-13 14:48| 来源: 网络整理| 查看: 265

目录 1、东大集成PDA的扫码说明2、Xamarin通过广播实现扫码2.1 PDA的扫码工具设置2.2 代码实现2.2.1 主界面2.2.1 定义广播接收器2.2.2 在活动页面实现读取 2.3 实现效果 3、demo下载

1、东大集成PDA的扫码说明

东大集成的PDA有两种方式实现设备自带的扫码功能。一种为调用硬件接口方式,另外一种为接收扫描工具广播开发模式。 其中两种方式只能选择一种,不可以在同一个APP中混用。 因此本次使用广播的方式实现东大集成PDA的扫码功能

2、Xamarin通过广播实现扫码 2.1 PDA的扫码工具设置

1、找到PDA上的扫码工具 扫码工具 2、进行应用的设置 扫码设置 3、选择广播的方式和结束符 设置广播 【注意】这个界面中,除了选择广播外。结束符要选择NONE。否则扫描的条码总是带结束符

4、点击“开发者项”,输入密码:888888 进入开发者选项 5、广播的相关内容,记下来,一会儿再代码中会用到 在这里插入图片描述

2.2 代码实现 2.2.1 主界面

在layout/activity_main.xml中添加了一个文本的控件(plain text) 主界面

2.2.1 定义广播接收器 [BroadcastReceiver(Enabled = true)] [IntentFilter(new[] { "com.android.server.scannerservice.broadcast" })] public class MySampleBroadcastReceiver : BroadcastReceiver { public string ScannerContent { get; set; } //用于存储扫码结果,并对外提供的 public override void OnReceive(Context context, Intent intent) { if(intent.Action.Equals("com.android.server.scannerservice.broadcast")) { ScannerContent = intent.GetStringExtra("scannerdata"); //读取数据。这个scannerdata,就是开发者项中的键值名称 } } } 2.2.2 在活动页面实现读取

在MainActivity中实现数据的接收

[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)] public class MainActivity : AppCompatActivity { MySampleBroadcastReceiver receiver; TextView sacnInputText; protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Xamarin.Essentials.Platform.Init(this, savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.activity_main); receiver = new MySampleBroadcastReceiver(); //初始化接收器 receiver.ScannerContent = "默认的初始值"; sacnInputText = FindViewById(Resource.Id.editText1); //初始化控件 } protected override void OnResume() { base.OnResume(); //设置自动获取焦点 sacnInputText.Focusable = true; sacnInputText.RequestFocus(); sacnInputText.FocusableInTouchMode = true; sacnInputText.RequestFocusFromTouch(); try { RegisterReceiver(receiver, new IntentFilter("com.android.server.scannerservice.broadcast")); //注册接收 sacnInputText.Text = receiver.ScannerContent; } catch (Exception e) { sacnInputText.Text = e.Message; } } protected override void OnPause() { //释放资源 UnregisterReceiver(receiver); // Code omitted for clarity base.OnPause(); } public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults) { Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults); base.OnRequestPermissionsResult(requestCode, permissions, grantResults); } } 2.3 实现效果

东大集成PDA的扫码功能

3、demo下载

demo下载:提取码:NHZL



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3