- 浏览: 1021495 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
自己811005:
3e0cb37da14117f477ff4f2f94c729e ...
sql基础_Case_特殊函数_异常_脏读 -
elton_john007:
我用 Thread.currentThread().getId ...
android系统内存不足时,应用被系统回收发生了什么? -
lwbao28:
wl8269961 写道设置方法:window-->pr ...
android ctrl + 左键(鼠标左键)直接打开xml文件 -
androidwifi:
sendMessageDelayed 不能实现循环, 看看这个 ...
android 三种定时器的写法 -
zy19891111:
回答得无比的赞
android系统内存不足时,应用被系统回收发生了什么?
// 连接蓝牙的线程 private class AcceptThread extends Thread { private final BluetoothServerSocket mmServerSocket; public AcceptThread() { BluetoothServerSocket tmp = null; try { tmp = BlueToothService.this.adapter.listenUsingRfcommWithServiceRecord("BTPrinter", BlueToothService.MY_UUID); } catch (IOException e) { Log.e(BlueToothService.this.TAG, "listen() failed", e); } this.mmServerSocket = tmp; } public void run() { if (BlueToothService.this.D.booleanValue()) Log.d(BlueToothService.this.TAG, "BEGIN mAcceptThread" + this); setName("AcceptThread"); BluetoothSocket socket = null; while (BlueToothService.this.mState != 3) { try { socket = this.mmServerSocket.accept(); } catch (IOException e) { break; } if (socket != null) synchronized (BlueToothService.this) { switch (BlueToothService.this.mState) { case 1: case 2: BlueToothService.this.connected(socket, socket.getRemoteDevice()); break; case 0: case 3: try { socket.close(); } catch (IOException localIOException1) { } } } } } public void cancel() { if (BlueToothService.this.D.booleanValue()) Log.d(BlueToothService.this.TAG, "cancel " + this); try { this.mmServerSocket.close(); } catch (IOException e) { Log.e(BlueToothService.this.TAG, "close() of server failed", e); } } } // 连接中的线程 private class ConnectThread extends Thread { private final BluetoothSocket mmSocket; private final BluetoothDevice mmDevice; public ConnectThread(BluetoothDevice device) { this.mmDevice = device; BluetoothSocket tmp = null; try { tmp = device.createRfcommSocketToServiceRecord(BlueToothService.MY_UUID); } catch (IOException e) { Log.e(BlueToothService.this.TAG, "create() failed", e); } this.mmSocket = tmp; } public void run() { Log.i(BlueToothService.this.TAG, "BEGIN mConnectThread"); setName("ConnectThread"); BlueToothService.this.adapter.cancelDiscovery(); BlueToothService.this.SetScanState(1); try { this.mmSocket.connect(); BlueToothService.this.connectionSuccess(); } catch (IOException e) { BlueToothService.this.connectionFailed(); try { this.mmSocket.close(); } catch (IOException e2) { Log.e(BlueToothService.this.TAG, "unable to close() socket during connection failure", e2); } BlueToothService.this.start(); return; } synchronized (BlueToothService.this) { BlueToothService.this.mConnectThread = null; } BlueToothService.this.connected(this.mmSocket, this.mmDevice); } public void cancel() { try { this.mmSocket.close(); } catch (IOException e) { Log.e(BlueToothService.this.TAG, "close() of connect socket failed", e); } } } // 连接之后的线程 private class ConnectedThread extends Thread { private final BluetoothSocket mmSocket; private final InputStream mmInStream; private final OutputStream mmOutStream; private boolean isCancle = false; public ConnectedThread(BluetoothSocket socket) { Log.d(BlueToothService.this.TAG, "create ConnectedThread"); this.mmSocket = socket; InputStream tmpIn = null; OutputStream tmpOut = null; this.isCancle = false; try { tmpIn = socket.getInputStream(); tmpOut = socket.getOutputStream(); } catch (IOException e) { Log.e(BlueToothService.this.TAG, "temp sockets not created", e); } this.mmInStream = tmpIn; this.mmOutStream = tmpOut; } public void run() { Log.i(BlueToothService.this.TAG, "BEGIN mConnectedThread"); while (!this.isCancle) try { byte[] buffer = new byte[1]; int bytes = this.mmInStream.read(buffer); if (bytes > 0) { BlueToothService.this.SetPrinterType(2); if (buffer[0] != 17) { BlueToothService.this.SetWriteState(3); } else { BlueToothService.this.SetWriteState(2); } } else { Log.e(BlueToothService.this.TAG, "disconnected1"); BlueToothService.this.connectionLost(); this.isCancle = true; } } catch (IOException e) { Log.e(BlueToothService.this.TAG, "disconnected2", e); BlueToothService.this.connectionLost(); this.isCancle = true; } } public void write(byte[] buffer) { try { this.mmOutStream.write(buffer); Log.i("BTPWRITE", new String(buffer, "GBK")); BlueToothService.this.mHandler.obtainMessage(3, -1, -1, buffer).sendToTarget(); } catch (IOException localIOException) { } } public void cancel() { try { this.isCancle = true; this.mmSocket.close(); Log.d(BlueToothService.this.TAG, "562cancel suc"); BlueToothService.this.setState(1); } catch (IOException e) { Log.d(BlueToothService.this.TAG, "565cancel failed"); } } }
评论
1 楼
518七哥
2014-11-14
我想问下,我的代码跟你的一样,安卓手机蓝牙能连接成功蓝牙打印机,但是打印好像没反应啊,是什么原因呢,求大神指导,我的QQ1024473555,希望大神有时间指导一下,我用的打印机是LW-600P,是爱普生的一款便携蓝牙打印机,我不知道这些代码能不能通用,应该要注意什么
发表评论
-
Git的正确使用姿势
2019-03-30 11:05 9231,Git教程 廖雪峰老师的Git教程 https://www ... -
简单的开机启动方法
2019-02-27 15:13 551把程序的快捷方式放在下面这个隐藏目录密码 C:\Progra ... -
WebDeploy部署
2019-02-27 09:57 696如果出现"检查授权和委派设置"的报错,在 ... -
Github多账号ssh配置
2019-02-24 16:06 596ssh-keygen -t rsa -C "emai ... -
SqlServer数据库收缩
2019-02-23 17:07 1017--设置为简单模式 ALTER DATABASE A ... -
自制https访问
2019-02-21 11:48 678制作过程 1,自制CA私钥 openssl genrsa -d ... -
Rar压缩命令
2019-02-15 15:25 966Rar压缩命令 "C:\Program File ... -
Github常用命令
2019-02-14 16:13 89echo "# dacaba.github.io ... -
npm
2019-02-02 21:44 573npm install --registry=https: ... -
SqlServer重建索引
2019-01-19 13:45 988SET NOCOUNT ON; DECLARE @obj ... -
自制证书实现网站https访问
2019-01-18 12:00 1111制作过程 1,自制CA私 ... -
Linux下nginx启动与重启
2018-11-30 14:46 1276#重启:先Kill 再启动 kill -9 $(ps - ... -
FastDfs快速安装
2018-11-30 13:51 995#启动tracker/storage/nginx #启动t ... -
linux静态IP设置
2018-11-29 18:31 938修改文件 /etc/sysconfig/network-sc ... -
Linux基础
2018-11-29 14:13 565脚本的运用 1,新建脚本文件build.sh,内容如下: ... -
常用CMD命令
2018-11-16 14:27 111查询IP信息 ipconfig 查询端口占用 C:\&g ... -
webpack
2018-09-14 18:08 705cnpm install webpack --save ... -
计数排序
2018-09-10 18:53 432计数排序(Counting Sort) ... -
二分排序法
2018-09-10 17:07 1465现在我来简单叙述一下二分法排序的思想, 1,从第0个元素开始用 ... -
EF的三种继承模式
2018-08-22 15:53 1500三种继承模式 Table per Type(TPT)继承 ...
相关推荐
"Android蓝牙连接设备demo"是一个示例项目,它演示了如何使用Android SDK来实现BLE 4.0及更高版本的蓝牙设备连接和通信功能。下面我们将深入探讨这个demo涉及的关键知识点。 1. **BLE 4.0与Android支持**:BLE 4.0...
总之,Java和Android之间的蓝牙连接是一项涉及多个API和步骤的技术,它允许设备间无线传输数据,为许多应用场景,如文件共享、设备控制等,提供了便利。通过深入研究和实践,开发者可以熟练掌握这项技术,构建出高效...
在Android平台上,蓝牙连接是一项重要的功能,用于设备之间的数据传输或者设备控制。在这个主题中,我们将深入探讨如何在Android应用中实现蓝牙连接,基于提供的文件`LocalDeviceManager.java`和`...
在Android平台上进行蓝牙连接开发是一项常见的任务,尤其对于构建物联网(IoT)设备或需要设备间通信的应用至关重要。本文将详细解析"Android蓝牙连接源代码"这一主题,以帮助开发者理解如何在Android应用中实现蓝牙...
在Android平台上,开发蓝牙连接功能是一项常见的任务,尤其在物联网(IoT)设备通信和移动设备间的数据交换中。本文将深入探讨如何实现一个简单的Android蓝牙连接Demo,涵盖蓝牙连接、数据传输以及服务(Service)的使用...
首先,我们要明白蓝牙连接状态主要包括三种:未连接、连接中和已连接。在Android中,我们可以利用BroadcastReceiver(广播接收器)来捕获蓝牙设备的这些状态变化。广播接收器是Android系统中一个重要的组件,它能够...
Android代码:蓝牙连接51单片机LED代码
当需要断开蓝牙连接时,使用`BluetoothSocket.close()`方法关闭socket,同时确保在应用层清理所有相关的资源。此外,`BluetoothAdapter.disable()`可以关闭整个蓝牙适配器,但此操作需要系统的特殊权限。 6. **...
- **状态监控**:通过BluetoothGattCallback监听蓝牙连接的状态变化,如连接成功、断开等。 - **适配不同Android版本**:Android的不同版本可能有不同的蓝牙API,需要根据API级别适配代码。 - **安全与隐私**:尊重...
本文将深入探讨如何在Android源码中实现蓝牙连接打印机的功能,旨在为开发者提供详尽的指导。 首先,理解Android蓝牙连接的基础概念至关重要。Android系统支持Bluetooth API,允许应用程序发现、配对并连接到其他...
android 8.1系统蓝牙连接,获取通讯录及通话记录、蓝牙电话等相关代码逻辑梳理
在Android平台上实现蓝牙连接并操作蓝牙读卡器的过程涉及到多个技术环节,包括蓝牙适配器的检测、设备的扫描与连接、数据传输以及读卡命令的发送与接收。以下是对这些知识点的详细说明: 1. **蓝牙适配器的检测**:...
在Android平台上,蓝牙连接和数据接收是移动应用开发中的一个重要组成部分,特别是在物联网(IoT)设备的交互场景中。以下是对这个主题的详细说明: ### 1. 蓝牙搜索与设备列表 首先,我们需要开启蓝牙功能并扫描周围...
这个过程涉及多个步骤和技术,包括蓝牙连接管理、数据格式转换以及与打印机的通信协议等。以下是对这一主题的详细解析: 首先,我们需要了解Android系统中的蓝牙API。Android提供了`BluetoothAdapter`类来管理和...
在Android平台上进行蓝牙连接通信是一项常见的任务,尤其在设备间数据传输、物联网应用以及游戏等领域。本文将深入探讨如何在Android系统中实现蓝牙匹配、建立连接以及进行数据交换。 首先,我们要了解Android中的...
在Android平台上,蓝牙连接配对和通信是一项常用的技术,它允许设备之间进行数据交换,例如在没有网络的情况下传输文件或实现物联网设备的控制。在这个"Android蓝牙连接配对通讯.zip"压缩包中,包含了实现这一功能的...
Android 蓝牙HFP 连接、SCO连接流程图(协议栈),非常详细的从btif-bta-btm-hci 数据流程走向,以及从controller收到数据到btm层,将Android 源码使用流程图的形式画了出来,使Android 蓝牙开发者更清楚数据收发...
在发送数据前,通常需要确保蓝牙连接已经建立并且稳定,可以通过`connect()`方法进行连接,并监听`IOException`来处理可能出现的连接问题。 在"PrinterTest"这个文件中,可能包含了一个测试类或者测试用例,用于...
在Android平台上进行蓝牙开发,尤其是实现蓝牙连接到打印机的功能,是一项技术性较强的任务。下面将详细阐述这个过程中涉及的关键知识点。 首先,理解Android蓝牙API是基础。Android提供了BluetoothAdapter类,它是...
#### 三、蓝牙连接建立过程 **1. 主动连接** 当Android设备主动连接蓝牙耳机时,通常是在“蓝牙设置”中完成配对。此时,`BluetoothHeadsetService` 会接收到`BONDING_CREATED_ACTION`动作,随后尝试通过RFCOMM...