VeiZhang / BluetoothKit

Android蓝牙工具

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Android蓝牙工具

功能

  • 搜索:经典蓝牙、低功耗蓝牙BLE
  • 检索方式:UUID、名字检索、Mac地址检索
  • 通讯:读取、写入蓝牙信息

使用

  • 申请权限 如果需要动态申请权限,可以参考permission
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
  • BluetoothRequest配置

    • 扫描超时时间,可选,默认20秒;小于等于0表示不限制扫描时间;但是会被经典蓝牙限制搜索时间,经典蓝牙搜索结束,则停止所有的搜索
    • 如果扫描不出来,可将主工程里的targetSdkVersion调到低于23

API - BluetoothRequest

  • addDeviceName

    /**
     * 过滤蓝牙名称
     *
     * @param nameList
     * @return
     */
    public Builder addDeviceName(String... nameList)
    {
        if (nameList != null && nameList.length > 0)
        {
            for (String name : nameList)
            {
                if (!TextUtils.isEmpty(name))
                {
                    mDeviceNameList.add(name);
                }
            }
        }
        return this;
    }
    
  • addDeviceMac

    /**
     * 过滤蓝牙Mac地址
     *
     * @param macList
     * @return
     */
    public Builder addDeviceMac(String... macList)
    {
        if (macList != null && macList.length > 0)
        {
            for (String mac : macList)
            {
                if (!TextUtils.isEmpty(mac))
                {
                    mDeviceMacList.add(mac);
                }
            }
        }
        return this;
    }
    
  • addServiceUuid

    /**
     * 过滤UUID
     *
     * @param uuidList
     * @return
     */
    public Builder addServiceUuid(String... uuidList)
    {
        if (uuidList != null && uuidList.length > 0)
        {
            for (String uuid : uuidList)
            {
                if (!TextUtils.isEmpty(uuid))
                {
                    mServiceUuids.add(UUID.fromString(uuid));
                }
            }
        }
        return this;
    }
    
  • setScanTimeOut

    /**
     * 设置搜索超时时间,默认20s,<=0表示不限制超时时间
     *
     * {@link SearchMethod#BLUETOOTH_CLASSIC} 经典蓝牙自动停止搜索,同时,低功耗蓝牙也停止搜索
     * {@link SearchMethod#BLUETOOTH_LE} 低功耗蓝牙设置搜索的超时时间
     * 此设置项是对两个同时停止
     *
     * @param time unit: ms
     * @return
     */
    public Builder setScanTimeOut(long time)
    {
        mTimeOut = time;
        return this;
    }
    
  • isPermissionCheck

    /**
     * 是否自动检测权限
     * <p>
     *     默认,启用,;但是有些设备,如Android机顶盒有些使用打开蓝牙的方式打不开,一直卡住,此时则关闭自动检测
     *
     *     如果关闭了权限检测后,不能搜索出蓝牙,很可能是需要权限,最终办法是设置 targetSdkVersion < 23
     *     Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results
     * </p>
     *
     * @param permissionCheck
     */
    public Builder isPermissionCheck(boolean permissionCheck)
    {
        isPermissionCheck = permissionCheck;
        return this;
    }
    

书籍

About

Android蓝牙工具


Languages

Language:Java 100.0%