Android蓝牙开发(二)之蓝牙配对和蓝牙连接

Android蓝牙开发(二)之蓝牙配对和蓝牙连接上篇文章:https://blog.csdn.net/huangliniqng/article/details/82185983讲解了打开蓝牙设备和搜索蓝牙设备,这篇文章来讲解蓝牙配对和蓝牙连接1.蓝牙配对搜索到蓝牙设备后,将设备信息填充到listview中,点击listiew则请求配对蓝牙配对有点击配对和自动配对,点击配对就是我们选择设备两个手机弹出配对确认框,点击确认…

大家好,又见面了,我是你们的朋友全栈君。

上篇文章:https://blog.csdn.net/huangliniqng/article/details/82185983

讲解了打开蓝牙设备和搜索蓝牙设备,这篇文章来讲解蓝牙配对和蓝牙连接

1.蓝牙配对

   搜索到蓝牙设备后,将设备信息填充到listview中,点击listiew则请求配对

  蓝牙配对有点击配对和自动配对,点击配对就是我们选择设备两个手机弹出配对确认框,点击确认后配对

  自动配对就是搜索到蓝牙设备后自动配对不需要输入pin码,但在基本开发中都不采用这种方式,所以这里说的是第一种配对方式

  点击配对,调用

BluetoothDevice.class.getMethod

进行配对,代码如下:

Method method = BluetoothDevice.class.getMethod("createBond");
Log.e(getPackageName(), "开始配对");
method.invoke(listdevice.get(position));

invoke传的参数就是要配对的设备(我这里是存在list中所以从list中取)

点击之后怎会弹出配对确认框,且必须被配对的手机也点击确认配对才可以配对成功如图:

Android蓝牙开发(二)之蓝牙配对和蓝牙连接

同样的,如果我们想要配对的设备取消配对

只需要将creatBond改为removeBond

2.蓝牙连接:

  配对成功之后,就可以进行蓝牙连接了,蓝牙连接操作比较耗时,可以在一个线程中进行:

调用自己定义的

connect(listdevice.get(position));

同样传递的参数也是设备device

首先声明蓝牙套接字:

private BluetoothSocket mBluetoothSocket;
mBluetoothSocket = bluetoothDevice.createRfcommSocketToServiceRecord(BltContant.SPP_UUID);

BltContant.SPP_UUID是一个UUID常量,至于UUID是什么,大家可以自行百度,因为详细的文章已经很多了。

连接的时候要先判断蓝牙是否在扫描,如果在扫描就停止扫描,并且没有连接才进行连接,代码如下:

if (bluetoothadapter.isDiscovering()) {
    bluetoothadapter.cancelDiscovery();
}
if (!mBluetoothSocket.isConnected()) {
    mBluetoothSocket.connect();
}

比如我们让其连接成功后,跳转到消息通讯界面,界面中有edittext输入框并显示当前连接的设备名称如图所示:

Android蓝牙开发(二)之蓝牙配对和蓝牙连接

在这里我们需要注意的是,当连接成功时,我们要让被连接的那部手机也自动跳转到聊天页面,所以我们要开启蓝牙服务端等待设备的连接,当设备连接时,自动跳转页面,蓝牙服务端代码如下:

/**
 * 开启服务端
 */
public void startBluService() {

    while (true) {
        try {
            if (getBluetoothServerSocket() == null){
                Log.e("在这里获取的为空","在这里获取的为空");
            }
            bluetoothSocket = getBluetoothServerSocket().accept();
            if (bluetoothSocket != null) {
                APP.bluetoothSocket = bluetoothSocket;
                EventBus.getDefault().post(new BluRxBean(SERVER_ACCEPT, bluetoothSocket.getRemoteDevice()));
                //如果你的蓝牙设备只是一对一的连接,则执行以下代码
                getBluetoothServerSocket().close();
                //如果你的蓝牙设备是一对多的,则应该调用break;跳出循环
                //break;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

服务端运行也在一个线程中,一直处于等待状态直到有设备连接进来。

下篇文章 蓝牙通信:https://blog.csdn.net/huangliniqng/article/details/82189735

欢迎关注技术公众号,微信号搜索ColorfulCode 代码男人

分享技术文章,投稿分享,不限技术种类,不限技术深度,让更多人因为分享而受益。

Android蓝牙开发(二)之蓝牙配对和蓝牙连接

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148394.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • superagent 模块

    superagent 模块SuperAgentsuperagent是一个轻量的,渐进式的ajaxapi,可读性好,学习曲线低,内部依赖nodejs原生的请求api,适用于nodejs环境下.一个简单的post请求,并设置请求头信息的例子request.post(‘/api/pet’).send({name:’Manny’,species:’cat’})…

    2025年7月7日
    3
  • TFS 2010 让安装更简单,也让VSS成为历史「建议收藏」

    TFS 2010 让安装更简单,也让VSS成为历史「建议收藏」      一转眼VS2010RC(ReleaseCandidate)版本已经发布一月多了,RTM(ReleaseToManufacturer)版本也快妥了,已经进入了最后的倒计时,只等4月12号发布了。TFS2010也将一起正式发布,相对于2005和2008,2010将是具有里程碑意义的一个版本,就像它总设计师BrianHarry在下面的Channel9采访中所描述的:“T

    2022年9月24日
    4
  • python 进制转换[通俗易懂]

    python 进制转换[通俗易懂]文章目录前言一、Python提供的进制转换方法1.二进制转十进制2.八进制转十进制3.十六进制转十进制4.十进制转十六进制5.十进制转二进制6.十进制转八进制二、自定义进制转换1.转十进制2.十进制转七进制总结前言十进制是我们常用的数字形式,但机器使用的却是二进制,八进制,十六进制之类的,所以进制转换是基础要求,很多编程语言提供的有进制转换的方法,下面我们开始学习一、Python提供的进制转换方法1.二进制转十进制s=’1001’print(int(s,2))结果如下:in..

    2022年5月12日
    55
  • Kolmogorov–Smirnov test(K-S检验)「建议收藏」

    Kolmogorov–Smirnov test(K-S检验)「建议收藏」主要参考资料:(1)https://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_test(2)https://wenku.baidu.com/view/ccfa573a3968011ca30091d6.htmlKolmogorov–Smirnovstatistic累计分布函数:其中I[−inf,x]I[−inf…

    2022年10月18日
    2
  • 风控模型评估方法以及大数据风控模型概念

    风控模型评估方法以及大数据风控模型概念更新一下有效性指标中的区分能力指标:KS(Kolmogorov-Smirnov):KS用于模型风险区分能力进行评估,指标衡量的是好坏样本累计分部之间的差值。好坏样本累计差异越大,KS指标越大,那么模型的风险区分能力越强。KS的计算步骤如下:1.计算每个评分区间的好坏账户数。2.计算每个评分区间的累计好账户数占总好账户数比率(good%)和累计坏账户数占总坏账户数比率(bad%

    2022年6月3日
    40
  • MIPI协议简介

    MIPI协议简介MIPI协议简介 介绍 MIPI联盟定义了一套接口标准,把移动设备内部的接口如摄像头、显示屏、基带、射频接口等标准化,从而增加设计灵活性,同时降低成本、设计复杂度、功耗和EMI。未来的产品都将朝着移动的方向发展,例如智能手机、数码相机、摄像机、平板电脑、媒体播放器、游戏机等,这些产品需要能执行多任务,包括处理多个不同的传感器如麦克风、图像传感器、磁罗盘、三轴加速度计和精细的触摸屏…

    2022年4月28日
    60

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号