Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 394|回复: 0

开发交流:Android BluetoothAdapter

[复制链接]

该用户从未签到

发表于 2011-10-24 09:35:39 | 显示全部楼层 |阅读模式
类概述

       代表本地的蓝牙适配器设备。BluetoothAdapter 类让用户能执行基本的蓝牙任务。例如:初始化设备的搜索,查询可匹配的设备集,使用一个已知的 MAC 地址来初始化一个BluetoothDevice 类,创建一个BluetoothServerSocket 类以监听其它设备对本机的连接请求等。

       为了得到这个代表本地蓝牙适配器的  BluetoothAdapter 类,调用 getDefaultAdapter()这一静态方法。这是所有蓝牙动作使用的第一步。当拥有本地适配器以后, 用户可以获得一系列的 BluetoothDevice 对象,这些对象代表所有拥有 getBondedDevice()方法的已经匹配的设备;用  startDiscovery()方法来开始设备的搜寻;或者创建一个 BluetoothServerSocket 类,通过  listenUsingRfcommWithServiceRecord(String, UUID)方法来监听新来的连接请求。
Note:大部分方法需要 BLUETOOTH 权限,一些方法同时需要 BLUETOOTH_ADMIN 权限。

        常量
       String    ACTION_DISCOVERY_FINISHED     

        广播事件:本地蓝牙适配器已经完成设备的搜寻过程。
        需要 BLUETOOTH 权限接收。

        常量值: "android.bluetooth.adapter.action.DISCOVERY_FINISHED"   

        String    ACTION_DISCOVERY_STARTED     

        广播事件:本地蓝牙适配器已经开始对远程设备的搜寻过程。
        它通常牵涉到一个大概需时 12 秒的查询扫描过程,紧跟着是一个对每个获取到自身蓝牙名称的新设备的页面扫描。用户会发现一个把 ACTION_FOUND 常量通知为远程蓝牙设备的注册。 设备查找是一个重量级过程。当查找正在进行的时候,用户不能尝试对新的远程蓝牙设备进行连接,同时存在的连接将获得有限制的带宽以及高等待时间。用户可用 cancelDiscovery()类来取消正在执行的查找进程。

        需要 BLUETOOTH 权限接收。
        常量值: "android.bluetooth.adapter.action.DISCOVERY_STARTED"

       String    ACTION_LOCAL_NAME_CHANGED   

        广播活动:本地蓝牙适配器已经更改了它的蓝牙名称。
        该名称对远程蓝牙设备是可见的。
        它总是包含了一个带有名称的 EXTRA_LOCAL_NAME 附加域。

        需要 BLUETOOTH 权限接收。
        常量值: "android.bluetooth.adapter.action.LOCAL_NAME_CHANGED"   

        String    ACTION_REQUEST_DISCOVERABLE
        Activity 活动:显示一个请求被搜寻模式的系统活动。如果蓝牙模块当前未打开,该活动也将请求用户打开蓝牙模块。被搜寻模式和 SCAN_MODE_CONNECTABLE_DISCOVERABLE 等价。当远程设备执行查找进程的时候,它允许其发现该蓝牙适配器。从隐私安全考虑,Android 不会将被搜寻模式设置为默认状态。该意图的发送者可以选择性地运用 EXTRA_DISCOVERABLE_DURATION 这个附加域去请求发现设备的持续时间。普遍来说,对于每一请求,默认的持续时间为 120 秒,最大值则可达到 300 秒。

       Android 运用 onActivityResult(int, int, Intent)回收方法来传递该活动结果的通知。被搜寻的时间(以秒为单位)将通过 resultCode 值来显示,如果用户拒绝被搜寻,或者设备产生了错 误,则通过 RESULT_CANCELED 值来显示。每当扫描模式变化的时候,应用程序可以为通过 ACTION_SCAN_MODE_CHANGED 值来
监听全局的消息通知。比如,当设备停止被搜寻以后,该消息可以被系统通知给应用程序。

        需要 BLUETOOTH 权限
        常量值: "android.bluetooth.adapter.action.REQUEST_DISCOVERABLE"   

        String    ACTION_REQUEST_ENABLE     

        Activity 活动:显示一个允许用户打开蓝牙模块的系统活动。当蓝牙模块完成打开工作,或者当用户决定不打开蓝牙模块时,系统活动将返回该值。Android 运用 onActivityResult(int, int, Intent)回收方法来传递该活动结果的通知。如果蓝牙模块被打开,将通过 resultCode 值 RESULT_OK 来显示;如果用户拒绝该请求,或者设
备产生了错误,则通过 RESULT_CANCELED 值来显示。每当蓝牙模块被打开或者关闭,应用程序可以为通过 ACTION_STATE_CHANGED 值来监听全局的消息通知。

        需要 BLUETOOTH 权限
        常量值: "android.bluetooth.adapter.action.REQUEST_ENABLE"

String    ACTION_SCAN_MODE_CHANGED   

       广播活动:指明蓝牙扫描模块或者本地适配器已经发生变化它总是包含 EXTRA_SCAN_MODE 和 EXTRA_PREVIOUS_SCAN_MODE。这两个附加域各自包含了新的和旧的扫描模式。
       需要 BLUETOOTH 权限
       常量值: "android.bluetooth.adapter.action.SCAN_MODE_CHANGED"   

       String    ACTION_STATE_CHANGED     

        广播活动:本来的蓝牙适配器的状态已经改变。
        例如:蓝牙模块已经被打开或者关闭。
        它总是包含 EXTRA_STATE 和 EXTRA_PREVIOUS_STATE。这两个附加域各自包含了新的和旧的状态。
        需要 BLUETOOTH 权限接收
        常量值: "android.bluetooth.adapter.action.STATE_CHANGED"   

        int    ERROR     
      
        标记该类的错误值。确保和该类中的任意其它整数常量不相等。它为需要一个标记错误值的函数提供了便利。例如:Intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR)   
       常量值: -2147483648 (0x80000000)   

       String    EXTRA_DISCOVERABLE_DURATION
   
       试图在 ACTION_REQUEST_DISCOVERABLE 常量中作为一个可选的整型附加域,来为短时间内的设备发现请求一个特定的持续时间。默认值为 120 秒,超过 300 秒的请求将被限制。这些值是可以变化的。

       常量值: "android.bluetooth.adapter.extra.DISCOVERABLE_DURATION"   

        String    EXTRA_LOCAL_NAME     
        试图在 ACTION_LOCAL_NAME_CHANGED 常量中作为一个字符串附加域,来请求本地蓝牙的名称。
        常量值: "android.bluetooth.adapter.extra.LOCAL_NAME"

        String    EXTRA_PREVIOUS_SCAN_MODE     

         试图在 ACTION_SCAN_MODE_CHANGED 常量中作为一个整型附加域,来请求以前的扫描模式。可能值有: SCAN_MODE_NONE, SCAN_MODE_CONNECTABLE,SCAN_MODE_CONNECTABLE_DISCOVERABLE
         常量值: "android.bluetooth.adapter.extra.PREVIOUS_SCAN_MODE"   

         String    EXTRA_PREVIOUS_STATE   

         试图在 ACTION_STATE_CHANGED 常量中作为一个整型附加域,来请求以前的供电状态。可能值有: STATE_OFF, STATE_TURNING_ON, STATE_ON, STATE_TURNING_OFF
         常量值: "android.bluetooth.adapter.extra.PREVIOUS_STATE"   

         String    EXTRA_SCAN_MODE     

         试图在 ACTION_SCAN_MODE_CHANGED 常量中作为一个整型附加域,来请求当前的扫描模式.可能值有: SCAN_MODE_NONE, SCAN_MODE_CONNECTABLE,SCAN_MODE_CONNECTABLE_DISCOVERABLE
         常量值: "android.bluetooth.adapter.extra.SCAN_MODE"   

         String    EXTRA_STATE   

         试图在 ACTION_STATE_CHANGED 常量中作为一个整型附加域,来请求当前的供电状态。
         可能值有: STATE_OFF, STATE_TURNING_ON, STATE_ON, STATE_TURNING_OFF
         常量值: "android.bluetooth.adapter.extra.STATE"

         int    SCAN_MODE_CONNECTABLE   

         指明在本地蓝牙适配器中,查询扫描功能失效,但页面扫描功能有效。因此该设备不能被远程蓝牙设备发现,但如果以前曾经发现过该设备,则远程设备可以对其进行连接。
        常量值: 21 (0x00000015)   

       int    SCAN_MODE_CONNECTABLE_DISCOVERABLE     

        指明在本地蓝牙适配器中,查询扫描功能和页面扫描功能都有效。因此该设备既可以被远程蓝牙设备发现,也可以被其连接。
         常量值: 23 (0x00000017)   

         int    SCAN_MODE_NONE     

         指明在本地蓝牙适配器中,查询扫描功能和页面扫描功能都失效. 因此该设备既不可以被远程蓝牙设备发现,也不可以被其连接。
         常量值: 20 (0x00000014)   

         int    STATE_OFF
     
         指明本地蓝牙适配器模块已经关闭
         常量值: 10 (0x0000000a)   

         int    STATE_ON   

         指明本地蓝牙适配器模块已经打开,并且准备被使用。
         常量值: 12 (0x0000000c)   

         int    STATE_TURNING_OFF     

         指明本地蓝牙适配器模块正在关闭。本地客户端可以立刻尝试友好地断开任意外部连接。
         常量值: 13 (0x0000000d)   

         int    STATE_TURNING_ON     

         指明本地蓝牙适配器模块正在打开. 然而本地客户在尝试使用这个适配器之前需要为STATE_ON 状态而等待。
         常量值: 11 (0x0000000b)  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-10 22:57 , Processed in 0.314283 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表