【Android 应用开发】BluetoothAdapter解析(三)

4.与蓝牙设备相关的方法

(1)检查蓝牙地址

public boolean checkBluetoothAddress(String address);

作用 : 检查蓝牙地址是否合法, 蓝牙地址字母必须大写, 例如 : "00:43:A8:23:10:F0";


参数 : 17位的字符串, 例如 : "00:43:A8:23:10:F0";


返回值 : 如果蓝牙地址合法返回true, 反之返回false;




(2)获取本地蓝牙地址

public String getAddress();

作用 : 返回本地蓝牙的MAC地址;


返回值 : 本地的硬件地址;




(3)获取本地蓝牙名称

public String getName();

返回值 : 本地蓝牙设备的名称;




(4)获取绑定的蓝牙集合

public Set<BluetoothDevice> getBoundedDevices();

作用 : 获取已经配对的蓝牙设备的集合, 如果蓝牙未被打开, 则返回null;




(5)获取远程蓝牙设备

public BluetoothDevice getRemoteDevice(String address);

作用 : 根据蓝牙的物理地址获取远程的蓝牙设备, 如果地址不合法, 就会产生异常;


返回值 : 获取到的BluetoothDevice对象;




(6)创建监听

public BluetoothServerSocket listenUsingRfcommonWithServiceRecord(String name, UUID uuid);

作用 : 创建一个监听Rfcommon端口的蓝牙监听, 使用accept()方法监听, 并获取BluetoothSocket对象; 该系统会根据一个服务名称(name)和唯一的识别码(uuid)来创建一个SDP服务, 远程蓝牙设备可以根据唯一的UUID来连接这个SDP服务器;


参数 : name : SDP服务器名称, UUID, SDP记录下的UUID;


返回值 : 正在监听蓝牙端口;


权限 : BLUETOOTH;






三 常用用法



1.打开蓝牙

     

//第一种打开方法: 调用enable 即可  
    boolean result = mBluetoothAdapter.enable();  
 
    //  
    /第二种打开方法 ,调用系统API去打开蓝牙  
    if (!mBluetoothAdapter.isEnabled()) //未打开蓝牙,才需要打开蓝牙  
    {  
    Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);  
    startActivityForResult(intent, REQUEST_OPEN_BT_CODE);  
    //会以Dialog样式显示一个Activity , 我们可以在onActivityResult()方法去处理返回值  
    }

第一种方法打开蓝牙, 没有任何提示, 直接就打开了;

第二种方法发送广播, 会弹出一个对话框, 选择是否打开蓝牙, 选择是蓝牙才打开;




2.设置可见


 

private void setDiscoverable() {
        Intent bluetoothIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
        bluetoothIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 3600);
        mContext.startActivity(bluetoothIntent);
    }
发送ACTION_REQUEST_DISCOVERABLE广播, 同时在

EXTRA_DISCOVERABLE_DURATION附加域中加入可见时间, 单位是秒;

发送这个广播, 会弹出一个对话框, 显示是否可见3600秒;


上一篇:【Kotlin】Kotlin 高阶函数 ( 高阶函数当做参数 | 高阶函数定义 | 高阶函数调用 )


下一篇:【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片(二)