使用BluetoothAdapter类,你能够在Android设备上查找周边的蓝牙设备然后配对(绑定),蓝牙通讯是基于唯一地址MAC来相互 传输的,考虑到安全问题Bluetooth通讯时需要先配对。然后开始相互连接,连接后设备将会共享同一个RFCOMM通道以便相互传输数据,目前这些实 现在Android 2.0或更高版本SDK上实现。

Android对于蓝牙开发从2.0版本的sdk才开始支持,而且模拟器不支持,测试至少需要两部手机,所以制约了很多技术人员的开发。

首先,要操作蓝牙,先要在AndroidManifest.xml里加入权限

java代码:
<uses-permissionandroid:nameuses

permissionandroid:name="android.permission.BLUETOOTH_ADMIN" />

<uses-permissionandroid:nameuses-permissionandroid:name="android.permission.BLUETOOTH" />
复制代码
然后,看下api,Android所有关于蓝牙开发的类都在android.bluetooth包下,如下图,只有8个类

而我们需要用到了就只有几个而已:

1.BluetoothAdapter 顾名思义,蓝牙适配器,

直到我们建立bluetoothSocket连接之前,都要不断操作它

BluetoothAdapter里的方法很多,常用的有以下几个:
cancelDiscovery() 根据字面意思,是取消发现,也就是说当我们正在搜索设备的时候调用这个方法将不再继续搜索

disable()关闭蓝牙
enable()打开蓝牙,这个方法打开蓝牙不会弹出提示,更多的时候我们需要问下用户是否打开,一下这两行代码同样是打开蓝牙,不过

会提示用户:

java代码:

Intemtenabler=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enabler,reCode);//同startActivity

(enabler);
复制代码
getAddress()获取本地蓝牙地址
getDefaultAdapter()获取默认BluetoothAdapter,实际上,也只有这一种方法获取BluetoothAdapter
getName()获取本地蓝牙名称
getRemoteDevice(String address)根据蓝牙地址获取远程蓝牙设备
getState()获取本地蓝牙适配器当前状态(感觉可能调试的时候更需要)
isDiscovering()判断当前是否正在查找设备,是返回true
isEnabled()判断蓝牙是否打开,已打开返回true,否则,返回false
listenUsingRfcommWithServiceRecord(String name,UUID uuid)根据名称,UUID创建并返回 BluetoothServerSocket,这

是创建BluetoothSocket服务器端的第一步

startDiscovery()开始搜索,这是搜索的第一步

2.BluetoothDevice看名字就知道,这个类描述了一个蓝牙设备
createRfcommSocketToServiceRecord(UUIDuuid)根据UUID创建并返回一个BluetoothSocket
这个方法也是我们获取BluetoothDevice的目的——创建BluetoothSocket
这个类其他的方法,如getAddress(),getName(),同BluetoothAdapter

3.BluetoothServerSocket如果去除了Bluetooth相信大家一定再熟悉不过了,既然是Socket,方法就应该都差不多,

这个类一种只有三个方法
两个重载的accept(),accept(inttimeout)两者的区别在于后面的方法指定了过时时间,需要注意的是,执行这两个方法的时候,直到

接收到了客户端的请求(或是过期之后),都会阻塞线程,应该放在新线程里运行!

还有一点需要注意的是,这两个方法都返回一个BluetoothSocket,最后的连接也是服务器端与客户端的两个BluetoothSocket的连接

close()这个就不用说了吧,翻译一下——关闭!

4.BluetoothSocket,跟BluetoothServerSocket相对,是客户端

一共5个方法,不出意外,都会用到

close(),关闭
connect()连接
getInptuStream()获取输入流
getOutputStream()获取输出流
getRemoteDevice()获取远程设备,这里指的是获取bluetoothSocket指定连接的那个远程蓝牙设备

google 蓝牙开发范例叫BluetoothChat的sample code 大家可以参考学习.

这个软件能够实现两部android手机通过蓝牙通信,其中使用的服务就是SPP服务。BluetoothChatService.java

在手机上测试,是挺麻烦。蓝牙调试实现程序与实体机联机测试。

笔记本、电脑如何装配蓝牙,与bluetouch建立通讯,值得我们继续研究。高手路过已经解决过的,请多指教。

更多相关文章

  1. Android Service的使用方法 音乐播放器实例
  2. Android定制RadioButton样式三种实现方法
  3. android调用Webservice方法
  4. Android 文件读写操作方法总结
  5. 低版本android project在高版本ADK中运行方法
  6. Android中应用界面主题Theme使用方法和页面定时跳转应用
  7. Android Studio 无设备打包与有设备打包小记
  8. G1安装android软件方法 (实机运行)
  9. android设置主题和自定义主题的方法

随机推荐

  1. android push notification serfice andr
  2. Android用户注册界面
  3. android中基于蓝牙开发的demo
  4. Android(安卓)OpenGL ES学习笔记之常用AP
  5. Android_Log_1_基础知识
  6. 理解Android中的Handler/Message
  7. 有关Android中EditText的一些属性
  8. Android(安卓)模拟器现已支持 AMD 处理器
  9. android开机logo和动画修改
  10. Android onSaveInstanceState和onRestore