`
897371388
  • 浏览: 528391 次
文章分类
社区版块
存档分类
最新评论

android bluetooth开发基础-4设置蓝牙

 
阅读更多


Figure 1:The enabling Bluetooth dialog.

在你的应用程序使用蓝牙进行通信之前,你需要确认你的设备支持蓝牙,如果支持,那么确认它已被启动。

如果你的设备不支持蓝牙,那么你应该关闭任何蓝牙特性。如果蓝牙被支持,那么你可以在你的程序中要求用户启动蓝牙。这需要两个步骤,并且要使用BluetoothAdapter这个类。

如果你的设备不支持蓝牙,那么要关闭任何蓝牙功能。如果支持蓝牙但没有启动,则你可以在程序中要求用户启动蓝牙。启动蓝牙需要两个步骤,并且需要BluetoothAdapter类。

  1. 获得BluetoothAdapter类

    任何蓝牙activity都需要BluetoothAdapter类。使用静态方法getDefaultAdapter()获得一个BluetoothAdapter的实例,这代表了设备本身的蓝牙适配器(the Bluetooth radio)。整个系统只有一个蓝牙适配器,你的程序可以通过获取到BluetoothAdapter实例与之交互。如果getDefaultAdapter()方法返回null则说明你的设备不支持蓝牙。

示例代码如下:

  1. BluetoothAdaptermBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();if(mBluetoothAdapter==null){//DevicedoesnotsupportBluetooth}

2.启动蓝牙

接下来,你必须确保用户启动了蓝牙。调用isEnabled()方法来检查当前蓝牙是否启动。如果该方法返回false,那么说明蓝牙没有启动。这时需要使用“ACTION_REQUEST_ENABLE”action Intent作为参数,调用startActivityForResult()方法来请求启动蓝牙。这将通过系统设备来发出启动蓝牙的请求(不会停止你的程序)。例如:

  1. if(!mBluetoothAdapter.isEnabled()){IntentenableBtIntent=newIntent(BluetoothAdapter.ACTION_REQUEST_ENABLE);startActivityForResult(enableBtIntent,REQUEST_ENABLE_BT);}

执行如上的代码将会弹出一个对话框,请求启动蓝牙的用户权限,如Figure 1所示。如果用户点击“Yes”按钮,那么系统将开始启动蓝牙,启动蓝牙(有可能失败)之后你的程序将重新获得焦点。

如果启动蓝牙成功,你的Activity将在onActivityResult()回调函数中接收到一个RESULT_OK结果码。如果蓝牙启动失败或者用户不允许启动蓝牙,则会收到RESULT_CANCELED。

可选的,你的程序能够监听ACTION_STATE_CHANGED broadcast Intent,这个广播Intent是系统探测到蓝牙状态改变时发出的。这个广播Intent包含了EXTRA_STATE和EXTRA_PREVIOUS_STATE两个域,包含了蓝牙旧的和新的状态。这两个域的值可能是STATE_TURNING_ON,STATE_ON,STATE_TURNING_OFF和STATE_OFF。

Tip:Enabling discoverability will automatically enable Bluetooth. If you plan to consistently enable device discoverability before performing Bluetooth activity, you can skip step 2 above. Read aboutenablingdiscoverability, below.

分享到:
评论

相关推荐

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    C++实现蓝牙bluetooth通讯功能

    C++实现蓝牙bluetooth通讯功能,基础功能实现,源代码,

    Android 蓝牙基础功能的开发

    Android 蓝牙基础功能的开发,功能包括扫描、连接、发送等,分为中央设备和外设蓝牙2个apk源码

    Android蓝牙和Cors网络开发源码

    内含两个独立的模块:蓝牙通信和Cors...其中蓝牙通信是在android sdk中提供的关于蓝牙的sample的基础上修改完成的,cors网络通信则是本人自己根据项目需要结合socket网络编程技术完成的,经测试能正常拿到差分数据。

    Android 初学中阶高阶书籍_集合打包2

    出,Android真机开发教程,Android中文翻译组——Android中文API合集(4), bluetooth 蓝牙,Google_Map_API谷歌地 图,Android的XML解析,牛人Android提高篇,手把手教你用Android开发新浪微博客户端

    Android 初学中阶高阶书籍_集合打包3

    出,Android真机开发教程,Android中文翻译组——Android中文API合集(4), bluetooth 蓝牙,Google_Map_API谷歌地 图,Android的XML解析,牛人Android提高篇,手把手教你用Android开发新浪微博客户端

    Android应用程序开发教程PDF电子书完整版、Android开发学习教程

    最底层的是一个 Linux Kernel,加载了几个移动设备必要的系统驱动(这么说来 Android 基础系统是要以 GPL 发布了?不知道 34 家厂商的硬件开发商们是怎么样想的);上面是类库和 Runtime,绿色的类库部分可以看 到...

    BLE初级入门资料集合

    Bluetooth低能耗技术基础知识.pdf Bluetooth技术-基础知识和品牌.pdf Getting Started with Bluetooth Low Energy.pdf RTL8762 CC254X 小蜜蜂BLE开发板简介v.pdf TI官方BLE教程.pdf xRTL8762AK_Datasheet_1.0 ...

    安卓蓝牙串口助手源码

    此源码为AndroidStudio3.0版,可以在此基础上开发其他蓝牙串口助手功能。

    TestWearApp.rar

    可用于手机与手机连接收发消息,也可用于手机与腕表之间收发消息,从蓝牙4.0开始包含两个蓝牙芯片模块:传统/经典蓝牙模块(Classic Bluetooth,简称BT 经典蓝牙是在之前的蓝牙1.0,1.2,2.0+EDR,2.1+EDR,3.0+EDR等基础...

    跳坑《一百七十六》蓝牙API使用指南

    目前蓝牙资料极少,但是为了让大家能够迅速的...由于系统的问题,目前仅在 mac 版的开发工具上支持蓝牙调试 tip: Mac系统可能无法获取advertisData及RSSI,请使用真机调试 tip: 开发者工具和 Android 上获取到的device

    internalblue:适用于Broadcom和Cypress芯片的蓝牙实验框架

    在此基础上,我们开发了一个蓝牙实验框架,该框架能够修补固件。 这实现了各种功能,否则这些功能只有在完整的软件定义的无线电实现中才可能实现,例如在链路层上注入和监视数据包。 InternalBlue不仅在安全移动...

Global site tag (gtag.js) - Google Analytics