您的位置:首页 > 移动开发 > Android开发

android 中文 api (72) —— BluetoothSocket[蓝牙]

2010-12-22 08:55 676 查看
前言

  本章内容是android.bluetooth.BluetoothSocket,为Android蓝牙部分的章节翻译。蓝牙通讯套接字,代表了与远端设备的连接点,使用socket本地程序可以通过inputstream和outputstream与远端程序进行通讯。版本为Android2.3r1,翻译来自中山大学的"AndroidClubSYSU",欢迎访问他们的WIKI:http://www.android-wiki.net,再次感谢"AndroidClubSYSU"!期待你一起参与AndroidAPI的中文翻译,联系我over140@gmail.com。

声明

  欢迎转载,但请保留文章原始出处:)

    AndroidClubSYSU:http://www.android-wiki.net

    农民伯伯:http://over140.blog.51cto.com/

    Android中文翻译组:http://code.taobao.org/project/view/404/

正文

  一、结构

publicstaticclassGallery.LayoutParamsextendsViewGroup.LayoutParams

java.lang.Object
android.view.ViewGroup.LayoutParams
android.widget.Gallery.LayoutParams

  二、概述

已连接或连接到蓝牙套接字(socket)。
蓝牙端口监听接口和TCP端口类似:Socket和ServerSocket类。在服务器端,使用BluetoothServerSocket类来创建一个监听服务端口。当一个连接被BluetoothServerSocket所接受,它会返回一个新的BluetoothSocket来管理该连接。在客户端,使用一个单独的BluetoothSocket类去初始化一个外接连接和管理该连接。
 最通常使用的蓝牙端口是RFCOMM,它是被AndroidAPI支持的类型。RFCOMM是一个面向连接,通过蓝牙模块进行的数据流传输方式,它也被称为串行端口规范(SerialPortProfile,SPP)。
 为了创建一个BluetoothSocket去连接到一个已知设备,使用方法BluetoothDevice.createRfcommSocketToServiceRecord()。然后调用connect()方法去尝试一个面向远程设备的连接。这个调用将被阻塞指导一个连接已经建立或者该链接失效。
 为了创建一个BluetoothSocket作为服务端(或者“主机”),查看BluetoothServerSocket文档。
 每当该端口连接成功,无论它初始化为客户端,或者被接受作为服务器端,通过getInputStream()和getOutputStream()来打开IO流,从而获得各自的InputStream和OutputStream对象
 BluetoothSocket类线程安全。特别的,close()方法总会马上放弃外界操作并关闭服务器端口。
 注意:需要
BLUETOOTH
权限。
 参见
BluetoothServerSocket

 
InputStream

 
OutputStream


  三、公共方法

publicvoidclose()
马上关闭该端口并且释放所有相关的资源。
在其它线程的该端口中引起阻塞,从而使系统马上抛出一个IO异常。
异常
IOException

publicvoidconnect()
尝试连接到远程设备。
该方法将阻塞,指导一个连接建立或者失效。如果该方法没有返回异常值,则该端口现在已经建立。
当设备查找正在进行的时候,创建对远程蓝牙设备的新连接不可被尝试。在蓝牙适配器上,设备查找是一个重量级过程,并且肯定会降低一个设备的连接。使用
cancelDiscovery()
方法去取消一个外界的查询。查询并不由活动所管理,而作为一个系统服务来运行,所以即使它不能直接请求一个查询,应用程序也总会调用
cancelDiscovery()
方法。
close()
方法可以用来放弃从另一线程而来的调用。
异常
IOException一个错误,例如连接失败。

publicInputStreamgetInputStream()
通过连接的端口获得输入数据流
即使该端口未连接,该输入数据流也会返回。不过在该数据流上的操作将抛出异常,直到相关的连接已经建立。
返回值
输入流
异常
IOException

publicOutputStreamgetOutputStream()
通过连接的端口获得输出数据流
即使该端口未连接,该输出数据流也会返回。不过在该数据流上的操作将抛出异常,直到相关的连接已经建立。
返回值
输出流
异常
IOException

publicBluetoothDevicegetRemoteDevice()
获得该端口正在连接或者已经连接的远程设备。
返回值
      远程设备

  四、补充

  文章精选
  第四十一讲:Android蓝牙编程入门

      Android蓝牙API之BluetoothSocket类
      Android蓝牙API之BluetoothSocket类(2)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: