精华内容
下载资源
问答
  • Xamarin.Android 集成打印机 打单1号 底部有github地址 1. 准备工作 2个jar文件 eventbus.jar RemotePrinter_V3.3.jar 2.创建Xamarin.Android项目 1.创建XA项目,步骤省略 创建完成之后,正常如图: 2.创建Android...

    Xamarin.Android 集成打印机 打单1号

    底部有github地址

    1. 准备工作 2个jar文件

    eventbus.jar
    
    RemotePrinter_V3.3.jar
    

    2.创建Xamarin.Android项目

    1.创建XA项目,步骤省略
    创建完成之后,正常如图:
    在这里插入图片描述
    2.创建Android绑定库
    在这里插入图片描述

    把下载的 eventbus.jar 和 RemotePrinter_V3.3.jar 文件,复制到 jar文件夹内,生成方式为:EmbeddedJar
    

    然后生成绑定库,正常情况下,会报错,不要慌,慢慢看。

    展开全文
  • VS2019 Xamarin.Android开发蓝牙通讯

    千次阅读 2019-12-18 19:22:33
    注意:不要选成移动应用xamarin.Forms要选android应用(Xamarin)xamarin.Forms 和Xamarin.Android还是有区别的。小项目就用Xamarin.Android就好了 选择空白模板 作为通讯App 必定需要 Server端 所以我们在这里在...

    第一步

    新建项目

    注意:不要选成移动应用xamarin.Forms要选android应用(Xamarin) xamarin.Forms 和 Xamarin.Android还是有区别的。小项目就用Xamarin.Android就好了

    选择空白模板

    作为通讯App 必定需要 Server端 所以我们在这里在新建一个Client端 原本的app1项目作为server端

    在解决方案上右键 添加新的项目

    继续选 Android 应用

    起名字叫app1Client

    继续选空白模板

    OK到这里第一步建立项目就完成了

    下一步我们将开始配置项目了。

    第二步

    配置项目

    Android在使用蓝牙时需要添加4个权限

    在app1项目上 右键属性 Android清单 内找到 所需权限 勾选

    BLUETOOTH(利用这个权限去执行蓝牙通信)

    BLUETOOTH_PRIVILEGED(配对连接时需要)

    BLUETOOTH_ADMIN(让app拥有启动设备发现或操纵蓝牙设置,必须声明BLUETOOTH_ADMIN权限)

    注意:真机android版本6.0及以上使用蓝牙搜索需要开发权限ACCESS_COARSE_LOCATION、ACCESS_FINE_LOCATION

    将App1 和 App1Client 2个项目都添加上述权限

    第三步 编写代码

    怎么添加界面和按钮一类的我就不详细写了 这里主要写怎么实现通讯的部分

    1.获得蓝牙设备 这需要用到 BluetoothAdapter 这个类 

    private readonly BluetoothAdapter localAdapter; 
    localAdapter = BluetoothAdapter.DefaultAdapter;

    localAdapter 就是默认蓝牙适配器了

    BluetoothAdapter 类 提供了 蓝牙适配器的状态 以及打开蓝牙 关闭蓝牙等一些方法 具体内容请自己点进该类查看

    2获取建立服务端的监听和通讯线程

    我先写下思路 我们首先需要一个线程来监听是否有客户端来请求建立连接

    如果建立连接成功就去建立一个通讯线程来读取Client端发来的数据..是不是很简单

    下面我们来是实现

    监听线程方法

    //在你想要启动监听线程的地方添加这个线程
    Thread t = new Thread(Monitor); 
    t.Start();
    
    public void Monitor()
            {
                BluetoothServerSocket serverSock = localAdapter.ListenUsingRfcommWithServiceRecord("Bluetooth", Java.Util.UUID.FromString("0000-0000-0000-0000-1234567"));
                BluetoothSocket sock = null;
                while (true)
                {
                    try
                    {
                        sock = serverSock.Accept();
                    }
                    catch (System.Exception)
                    {
                    }
                    Thread t = new Thread(Connected);
                    t.Start(sock);
                }

    核心方法 localAdapter.ListenUsingRfcommWithServiceRecord

            //
            // 摘要:
            //     Create a listening, secure RFCOMM Bluetooth socket with Service Record.
            //
            // 参数:
            //   name:
            //     service name for SDP record
            //
            //   uuid:
            //     uuid for SDP record
            //
            // 返回结果:
            //     To be added.
            //
            // 异常:
            //   T:Java.IO.IOException:
            //     on error, for example Bluetooth not available, or insufficient permissions, or
            //     channel in use.
            //
            // 言论:
            //     Portions of this page are modifications based on work created and shared by the
            //     Android Open Source Project and used according to terms described in the Creative
            //     Commons 2.5 Attribution License.
            [Register("listenUsingRfcommWithServiceRecord", "(Ljava/lang/String;Ljava/util/UUID;)Landroid/bluetooth/BluetoothServerSocket;", "")]
            public BluetoothServerSocket ListenUsingRfcommWithServiceRecord(string name, UUID uuid);

    public BluetoothServerSocket ListenUsingRfcommWithServiceRecord(string name, UUID uuid); 该方法 需要个一个连接名称和一个 UUID 并返回一个BluetoothServerSocket 对象 如果你会Socket的话接下来就很简单了。

    BluetoothServerSocket 类提供了几个建立连接的方法

    Accept()方法返回了一个BluetoothSocket对象

    BluetoothSocket 类提供了蓝牙适配输入输出流的操作

    public Stream OutputStream { get; } //输入流 读操作使用该流
    public Stream InputStream { get; } //输出流 写操作使用该流
    public BluetoothDevice RemoteDevice { get; } //远程设备属性

    接下来我们要实现通讯线程

                    Thread t = new Thread(Connected);
                    t.Start(sock);

    当建立连接成功 执行该代码来新建一个通讯线程 

    由于通讯线程需要该连接的套接字 所以我们要把建立连接成功后的套接字作为参数传递到线程函数内

    通讯线程方法

            public void Connected(object sock)
            {
                BluetoothSocket mSock = (BluetoothSocket)sock;
                byte[] rebuf = new byte[1024];         
                while (true)
                {
                    int len =  mSock.InputStream.Read(rebuf,0, rebuf.Length);
    
                    if (len > 0)
                    {
                        byte[] rebuf2 = new byte[len];
                        Array.Copy(rebuf, 0, rebuf2, 0, len);
                        string str = System.Text.Encoding.ASCII.GetString(rebuf2);
                        Toast.MakeText(this, str, ToastLength.Short).Show();
    
                    }
                    Thread.Sleep(100);
                    
                }

    由于线程启动时传递的参数只能是Object对象所以先将 Object对象转换为BluetoothSocket 对象  BluetoothSocket mSock = (BluetoothSocket)sock;

    然后我们在新建一个缓冲区 用来读取数据 由于我们现在还不知道将要读取的数据有多大。我们可以先建立一个和蓝牙读取缓冲区大小一样的byte数组 byte[] rebuf = new byte[1024]; 当然我这里只用了1KB 蓝牙的读取缓冲区默认好像是4KB 

    接下来我们就每100毫秒区读一下是否有数据 当然你可以用更快的速度来读取如果你一个包的大小很小的话

    //
            // 摘要:
            //     当在派生类中重写时,从当前流读取字节序列,并将此流中的位置提升读取的字节数。
            //
            // 参数:
            //   buffer:
            //     字节数组。 当此方法返回时,此缓冲区包含指定的字符数组,此数组中 offset 和 (offset + count - 1) 之间的值被从当前源中读取的字节所替换。
            //
            //   offset:
            //     buffer 中的从零开始的字节偏移量,从此处开始存储从当前流中读取的数据。
            //
            //   count:
            //     要从当前流中最多读取的字节数。
            //
            // 返回结果:
            //     读入缓冲区中的总字节数。 如果很多字节当前不可用,则总字节数可能小于请求的字节数;如果已到达流结尾,则为零 (0)。
            //
            // 异常:
            //   T:System.ArgumentException:
            //     offset 和 count 的总和大于缓冲区长度。
            //
            //   T:System.ArgumentNullException:
            //     buffer 为 null。
            //
            //   T:System.ArgumentOutOfRangeException:
            //     offset 或 count 为负数。
            //
            //   T:System.IO.IOException:
            //     出现 I/O 错误。
            //
            //   T:System.NotSupportedException:
            //     流不支持读取。
            //
            //   T:System.ObjectDisposedException:
            //     在流关闭后调用方法。
            public abstract int Read(byte[] buffer, int offset, int count);
    
    
            int len =  mSock.InputStream.Read(rebuf,0, rebuf.Length);

    Read方法返回一个int 类型的对象 表示读到的数据长度

    如果数据长度 > 0

    我们就可以解析了

    byte[] rebuf2 = new byte[len];                   
    Array.Copy(rebuf, 0, rebuf2, 0, len);
    string str = System.Text.Encoding.ASCII.GetString(rebuf2);
    
    

    新建一个 读取到长度大小的byte数组 将读到的数据拷贝到新的数组内进行解析。到这一步 一个最基础的服务端就完成了

    To be continued .......

    下集预告:明天我们将讲解如何写一个客户端来与服务端建立连接

    -------------------------------------------------------------------------------------------------

    本想把客户端的也好好写一篇。可惜工作太忙时间有限。

    我把源码放出来。。

    BLETEST.rar_Xamarin蓝牙通讯-Android代码类资源-CSDN下载

    有需求的自己下载吧

    ----------------------------------------------------------------------------------------

    对一些大家提出的问题回答

    1.说缺少文件的。应该是缺少Xamarin

    感谢下载 Xamarin - Visual Studio

     添加Xamarin

    2.无法连接服务端的

     

    请修改client端

    MainActivity.cs文件内的代码

    void Monitor() 函数内我限定了服务端是HUAWEI P30的设备,请修改为你自己做服务端的设备名称。

    展开全文
  • 运用跨平台框架Xamarin, 基于VS2017进行的移动app开发,实现 蓝牙扫描、配对、连接,通信开发
  • 蓝牙打印Xamarin 取自Xamarin android示例和 在GOOJPRT PT-210上测试 另一个样品
  • Xamarin.Android 6.0以后开启权限方法

    千次阅读 2019-09-04 14:20:00
    Android 6.0 版本以上一些危险权限只能在运行的时候依次询问用户是否赋予,所以在开发的时候使用 RequestPermissions 方法单独请求所需要的权限。 代码: //开启相机权限 if (ContextCompat....

      Android 6.0 版本以上一些危险权限只能在运行的时候依次询问用户是否赋予,所以在开发的时候使用 RequestPermissions 方法单独请求所需要的权限。

    代码:

    //开启相机权限
    if (ContextCompat.CheckSelfPermission(this, Manifest.Permission.Camera) != (int)Permission.Granted)
    {
        RequestPermissions(new String[] { Manifest.Permission.Camera }, 0);
    }
    
    //开启存储权限
    if (ContextCompat.CheckSelfPermission(this, Manifest.Permission.WriteExternalStorage) != (int)Permission.Granted)
    {
        RequestPermissions(new String[] { Manifest.Permission.ReadExternalStorage, Manifest.Permission.WriteExternalStorage }, 0);
    }

     

    展开全文
  • Android应用源码蓝牙串口搜索配对连接通讯
  • Xamarin蓝牙打印

    2018-08-13 12:52:29
    Xamarin蓝牙打印,已经封装好了代码,直接移植过去使用,可自行扩展,按照使用例子直接调用打印。注意:需要打开设备的蓝牙
  • Xamarin/Android 蓝牙搜索配对数据传输

    千次阅读 2019-02-27 10:09:56
    BluetoothAdapter(蓝牙适配器)、BluetoothDevice(蓝牙设备)、BluetoothSocket(蓝牙通讯)、BroadcastReceiver (广播接收器) 关键权限 BLUETOOTH(利用这个权限去执行蓝牙通信)、BLUETOOTH_PRIVILEGED(配对连接时...

    关键类

    BluetoothAdapter(蓝牙适配器)、BluetoothDevice(蓝牙设备)、BluetoothSocket(蓝牙通讯)、BroadcastReceiver (广播接收器)

    关键权限

    BLUETOOTH(利用这个权限去执行蓝牙通信)、BLUETOOTH_PRIVILEGED(配对连接时需要)、BLUETOOTH_ADMIN(让app拥有启动设备发现或操纵蓝牙设置,必须声明BLUETOOTH_ADMIN权限)

    注意:真机android版本6.0及以上使用蓝牙搜索需要开发权限ACCESS_COARSE_LOCATION、ACCESS_FINE_LOCATION

    具体应用
    BluetoothAdapter(蓝牙适配器)
    BluetoothAdapter.DefaultAdapter(获取本机蓝牙适配器)
    IsEnabled:蓝牙状态(关闭/打开)
    BondedDevices:获取已经配对过的蓝牙设备列表
    IsDiscovering:是否发现蓝牙设备

    Enable():打开蓝牙
    Disable():关闭蓝牙
    StartDiscovery():开始发现蓝牙
    CancelDiscovery():取消发现蓝牙
    GetRemoteDevice(address);获取远程设备-对方蓝牙

    BluetoothDevice(蓝牙设备)
    UUID uuid = UUID.FromString(“00001101-0000-1000-8000-00805F9B34FB”);
    方法
    CreateInsecureRfcommSocketToServiceRecord(uuid):创建通讯通道

    BluetoothSocket(蓝牙通讯)
    Socket = device.CreateInsecureRfcommSocketToServiceRecord(uuid);
    方法:
    Connect():连接蓝牙
    Close():关闭蓝牙连接
    属性:
    IsConnected:蓝牙连接状态
    InputStream:读取输入数据
    OutputStream:传出输出数据

    BroadcastReceiver (广播接收器)
    继承广播接收器,进行重新OnReceive ()方法,用于接收广播信息(蓝牙)

    实现蓝牙设备监听
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 用C#语言 xamarin.android 开发的 蓝牙打印功能,用vs2017开发的源码,还包括引用java jar 包
  • Xamarin.Android Bluetooth 简单介绍了Xamarin.Android蓝牙连接的方法。
  • Xamarin iOS开发实战下册 (内部资料)
  • xamarin android c# 蓝牙源码

    热门讨论 2013-11-18 11:18:11
    xamarin android c# 蓝牙源码 在vs2010上编通过 可以跟蓝牙模块通信,
  • Xamarin Android基本功能实现

    千次阅读 2019-04-28 17:33:19
    Xamarin Android基本功能实现 前文已经配置好开发环境,接下来实现简单的拍照,相册,蓝牙,wifi,网络信息等基本功能。 主要目录 AndroidManifest.xml 应用权限管理 Main_axml activity_main.axml 页面按钮等布局 ...
  • .NET Standard@Xamarin.Forms

    千次阅读 2017-08-09 22:21:21
     需要在Android,iOS,UWP中重新添加一下App1,还有把Xamarin Forms的版本同步成和.NET Standard版本一致,再尝试编译。看看,就基本通过了。    疑问:所有的库都有.NET Standard兼容版本吗?答案是不是...
  • Xamarin和MvvMCross插件,用于访问蓝牙功能。 该插件宽松地基于的BLE实现。 重要说明:术语“香草”是指非MvvmCross /纯Xamarin版本。 如果下载香草包,则可以不使用MvvmCross来使用它。 支持与限制 平台 版 局限...
  • 这是使用 Xamarin 构建的 android 应用程序,能够使用蓝牙控制远程 PC。 这可用于多种场景,包括用于 Microsoft PowerPoint 演示文稿的 PPT 控制器或任何其他基于 Web 的演示文稿控制器,如reveal.js 或 impress.js...
  • 第一章:HelloWord 一、基础知识:1、主程序前台文件:App.xaml 2、主程序后台文件:App.xaml.cs 3、主程序入口方法:App...Application xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.micr
  • Xamarin Android移动开发蓝牙打印编码报错:Encoding 936 data could not be found. Make sure you have correct international codeset assembly installed and enabled.Encoding 54936 data could not be found. ...
  • android蓝牙打印小票机

    2017-12-01 16:33:09
    最近很多人都在问我android怎么连接蓝牙打印小票机,现在我这里就写出来了一个demo供与大家学习参考,详情图介绍可以看我的博客文章—>android应用—>android蓝牙打印小票机Demo
  • 用VS2017 Xamarin 开发Andriod Bluetooth APP 历程记录入门新手Bluetooth 瞭望功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个...
  • 允许应用程序发现匹配的蓝牙设备的权限 BROADCAST_SMS                                  允许应用程序广播收到短信提醒的权限 CALL_PHONE            ...
  • Xamarin Android入门开发指南api调用文档,内容详细。包含各个控件的使用,及蓝牙,地图等api接口
  • 媒体应用程序比其他应用程序更受益于与本地平台一起工作。有些事情,比如处理音频焦点的中断、网络连接... 为使Xamarin开发访问这些本地平台的功能,我们决定建立一个跨平台的Xamarin插件,抽象了困难。我们使用诱...
  • 自述文件 使用Xamarin构建的iOS版iBeacon演示 当前设置为与Roximity(iOS和Android)和Estimote(仅iOS)信标一起使用
  • 目前,android 如何实现连接蓝牙打印机来实现打印功能,请大侠来指点, 是否要遵循什么协议标准,还是有设备提供商会提供打印的sdk, 我们做android开发的,要怎么做。
  • 本程序功能:实现蓝牙的自动配对功能。 关于本程序的详细的说明,请见中文博客 http://blog.csdn.net/qq_25827845/article/details/52400782
  • ble.net是一个跨平台的蓝牙低功耗(aka BLE,aka Bluetooth LE,aka Bluetooth Smart)库,用于在Android,iOS和UWP / Windows上进行BLE客户端的简单开发。 它在所有支持的平台上提供了一致的API,并隐藏了大多数...
  • 它使连接和收听来自Windows Universal,Windows Desktop / .NET和Windows Universal应用程序以及适用于iOS和AndroidXamarin的各种设备发出的NMEA消息变得容易。 赞助商 如果您喜欢这个图书馆并且经常使用它,请...
  • C#连接低耗蓝牙源码例子,支持连接,发送,接收
  • Android的媒体路由API被设计用来允许多种媒体(视频、音乐、图片)在与ANDROID设备连接(无线或有线)的辅助设备(如电视、立体声、家庭戏院系统、音乐播放机)上显示和播放,使用该框架和API,允许Android用户立即在辅助...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 183
精华内容 73
关键字:

xamarin.android蓝牙