随着近两年可穿戴式产品逐渐进入人们的生活,蓝牙开发也成为了Android开发的一个重要模块,下面我们就来说一说蓝牙的这些API。

1.蓝牙开发有两个主要的API

BuletoothAdapter:本地蓝牙的适配器,也就是说当前应用程序所运行的Android设备上的蓝牙

BuletoothDevice  : 远程的蓝牙适配器,也就是说你要连接的Android设备的适配器。

2.蓝牙权限 :

android.permission.BLUETOOTH : 允许程序连接到已配对的蓝牙设备, 请求连接/接收连接/传输数据需要改权限, 主要用于对配对后进行操作;

android.permission.BLUETOOTH_ADMIN : 允许程序发现和配对蓝牙设备, 该权限用来管理蓝牙设备, 有了这个权限, 应用才能使用本机的蓝牙设备, 主要用于对配对前的操作;

优先级 : BLUETOOTH权限是BLUETOOTH_ADMIN权限的前提, 如果没有BLUETOOTH权限, 就不能使用BLUETOOTH_ADMIN权限;

3.蓝牙状态值:

蓝牙关闭 : int STATE_OFF , 值为10, 蓝牙模块处于关闭状态;

蓝牙打开中 : int STATE_TURNING_ON , 值为11, 蓝牙模块正在打开;

蓝牙开启 : int STATE_ON , 值为12, 蓝牙模块处于开启状态;

蓝牙开启中 : int STATE_TURNING_OFF , 值为13, 蓝牙模块正在关闭;

4.蓝牙相关的广播:

开关状态改变:

BluetoothAdapter.ACTION_STATE_CHANGE:

可以通过intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR)获取当前蓝牙改变的状态。

搜索到附近可用设备:

BluetoothDevice.ACTION_FOUND:

可以通过intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 获取当前搜索到的远程设备。

配对请求:

BluetoothDevice.ACTION_PAIRING_REQUEST

配对状态改变:

BluetoothDevice.ACTION_PAIRING_REQUEST:

5.常用方法:

打开/关闭 蓝牙:

BluetoothAdapter mAdapter = BluetoothAdapter.getDefaultAdapter(); //获取本地蓝牙实例

if (!mAdapter.isEnabled()){

  mAdapter.enable();  //打开蓝牙

}else{

   mAdapter.enable(); //关闭蓝牙

}

设置蓝牙可见性:

可见:adapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE);

不可见:adapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE);

设置可见性超时时间: adapter.setDiscoverableTimeout(BLUETOOTH_DSCOVERABLE_TIME);

开始 / 停止 扫描附近的设备:

mAdapter.startDiscovery();  //开始扫描

mAdapter.startDiscovery(); //停止扫描

获取蓝牙基本信息:

MAC地址:mAdapter.getAddress();

名称:      mAdapter.getName();

与远程设备配对:

  try {

        Method createBondMethod = BluetoothDevice.class.getMethod("createBond");
       createBondMethod.invoke(device);
  } catch (Exception e) {
        e.printStackTrace();
  }

Android 蓝牙API详解的更多相关文章

  1. Android 蓝牙操作详解

    1.启用蓝牙并使设备处于可发现状态    1.1 在使用BluetoothAdapter类的实例进操作之前,应启用isEnable()方法检查设备是否启用了蓝牙适配器.       // 使用意图提示 ...

  2. Android Developer -- Bluetooth篇 开发实例之四 API详解

    http://www.open-open.com/lib/view/open1390879771695.html 这篇文章将会详细解析BluetoothAdapter的详细api, 包括隐藏方法, 每 ...

  3. android:ToolBar详解

    android:ToolBar详解(手把手教程) 泡在网上的日子 发表于 2014-11-18 12:49 第 124857 次阅读 ToolBar 42 来源 http://blog.mosil.b ...

  4. Android之canvas详解

    首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, y ...

  5. 【转】Android Canvas绘图详解(图文)

    转自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1212/703.html Android Canvas绘图详解(图文) 泡 ...

  6. Android GLSurfaceView用法详解(二)

    输入如何处理       若是开发一个交互型的应用(如游戏),通常需要子类化 GLSurfaceView,由此可以获取输入事件.下面有个例子: java代码: package eoe.ClearTes ...

  7. Android WebView 开发详解(三)

    转载请注明出处   http://blog.csdn.net/typename/article/details/40302351 powered by miechal zhao 概览 Android ...

  8. Android WebView 开发详解(二)

    转载请注明出处  http://blog.csdn.net/typename/article/details/39495409 powered by miechal zhao   概览: Androi ...

  9. android屏幕适配详解

    android屏幕适配详解 官方地址:http://developer.android.com/guide/practices/screens_support.html 一.关于布局适配建议 1.不要 ...

随机推荐

  1. JS 之Blob 对象类型

    原文 http://blog.csdn.net/oscar999/article/details/36373183 什么是Blob? Blob 是什么? 这里说的是一种Javascript的对象类型. ...

  2. Python for Informatics 第11章 正则表达式四(译)

    注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 11.3 组合查询和抽取 如果我 ...

  3. Masonry小结

    一,容易混淆的问题 1.make.left.equal(xxx)的参数若为某个控件,则默认为以该控件的 left 为基准对照. //these two constraints are exactly ...

  4. innerHTML 与 innerText 的区别

    innerHTML指的是从对象的起始位置到终止位置的全部内容,包括Html标签.innerText 指的是从起始位置到终止位置的内容,但它去除Html标签.同时,innerHTML 是所有浏览器都支持 ...

  5. CSS笔记2

    1.     CSS基础选择器 html负责结构 ,css负责样式,js负责行为 css写在head标签里面,容器style标签 <style type="text/css" ...

  6. css记录

    padding padding-top是在绿色边框内,从顶部向下移20像素位置,默认padding-top 为0时,红色边框为20像素高,通过padding-top属性,为顶部增加了20像素,这时顶部 ...

  7. 初学者对于MVC架构模式学习与理解

    理解MVC的工作原理,明白一个网页是如何显示出来的 之前一直盲目的在慕课上看视频,脑袋里想着要理解mvc,看了mvc相关的视频,看完之后就觉得空白白的,M,V,C各代表什么我知道,但是这个究竟有啥意思 ...

  8. windows2013 iis 配置 xcache

    本帖最后由 artsharp 于 2010-6-8 09:06 编辑XCache是一种新的php缓存器,经过测试,在Windows下效果比同类软件强很多.实际测试效果如下(非科学方法):原网页平均执行 ...

  9. java内置工具

    jps jps -l :列出java进程 jstat jstat -gcutil pid:列出各个内存区的使用情况,百分比 jinfo jinfo -flags pid : 列出虚拟机设置,包括默认值 ...

  10. [IT新应用]家用NAS,自建“360云盘”

    360云盘也快要离开了.同事中有人开始尝试使用群晖NAS.西数的NAS来自建云了. [功能对比] [选择参数] [口碑评价]