Android 蓝牙通信

这篇博客介绍了Android蓝牙通信的简要设计与开发,包括服务端和客户端的实现、数据传输及其它相关设置。开发者通过参考课内学习网址和相关教程,实现了蓝牙连接功能,并展示了运行结果。
摘要由CSDN通过智能技术生成

蓝牙通信的简要设计与开发

作业6



提示:以下是本篇文章正文内容,下面案例可供参考

要求

根据课内的学习网址进行蓝牙通信的简要设计与开发。
https://developer.android.google.cn/guide/topics/connectivity/bluetooth
http://www.android-doc.com/guide/topics/connectivity/bluetooth.html
https://www.jianshu.com/p/8fbbc6723a7c
https://blog.csdn.net/weixin_39079048/article/details/78923669

源代码

服务端

private class AcceptThread extends Thread {
   
        // 本地服务器套接字
        private final BluetoothServerSocket mServerSocket;
        public AcceptThread() {
          	
            BluetoothServerSocket tmp = null;
            // 创建一个新的侦听服务器套接字
            try {
   
                tmp = mAdapter.listenUsingRfcommWithServiceRecord(
                		SERVICE_NAME, SERVICE_UUID);
            	//tmp = mAdapter.listenUsingInsecureRfcommWithServiceRecord(SERVICE_NAME, SERVICE_UUID);
            } catch (IOException e) {
   
                Log.e(TAG, "listen() failed", e);
            }
            mServerSocket = tmp;
        }
 
        public void run() {
   
            BluetoothSocket socket = null;
            // 循环,直到连接成功
            while (mState != STATE_CONNECTED) {
   
                try {
   
                    // 这是一个阻塞调用 返回成功的连接
                    // mServerSocket.close()在另一个线程中调用,可以中止该阻塞
                    socket = mServerSocket.accept();
                } catch (IOException e) {
   
                    Log.e(TAG, "accept() failed", e);
                    break;
                }
                // 如果连接被接受
                if (socket != null) {
   
                    synchronized (BluetoothChatUtil.this) {
   
                        switch (mState) {
   
                        case STATE_LISTEN:
                        case STATE_CONNECTING:
                            // 正常情况。启动ConnectedThread。
                            connected(socket, socket.getRemoteDevice());
                            break;
                        case STATE_NONE:
                        case STATE_CONNECTED:
                            // 没有准备或已连接。新连接终止。
                            try {
   
                                socket.close();
                            } catch (IOException e) {
   
                                Log.e(TAG, "Could not close unwanted socket"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值