澳门金沙手机版:蓝牙开发入门,app之YdbOnline说明文档

概述

YdbOnline是面向网页开发者提供的网页开发工具包。

通过使用YdbOnline,网页开发者可借助YdbOnline高效地使用语音、位置等手机系统的能力,同时可以直接使用清除缓存、扫一扫等App特有的能力,为用户提供更优质的网页体验。

此文档面向网页开发者介绍YdbOnline如何使用及相关注意事项。

概述

YdbOnline是面向网页开发者提供的网页开发工具包。

通过使用YdbOnline,网页开发者可借助YdbOnline高效地使用语音、位置等手机系统的能力,同时可以直接使用清除缓存、扫一扫等App特有的能力,为用户提供更优质的网页体验。

此文档面向网页开发者介绍YdbOnline如何使用及相关注意事项。

Android 4.3(API Level 18)开始引入Bluetooth Low
Energy(BLE,低功耗蓝牙)的核心功能并提供了相应的 API, 应用程序通过这些
API 扫描蓝牙设备、查询 services、读写设备的 characteristics等操作。

JSSDK使用步骤

JSSDK使用步骤

Android BLE 使用的蓝牙协议是 GATT
协议,有关该协议的详细内容可以参见蓝牙官方文档。以下我引用一张官网的图来大概说明
Android 开发中我们需要了解的一些 Bluetooth Low Energy 的专业术语。

步骤一:引入JS文件

在需要调用JS接口的页面引入如下JS文件,(支持https):
旧的接口(不建议使用):

                    例如,页面head部分插入代码:<script src="http://static.ydbimg.com/API/YdbOnline.js" type="text/javascript"></script>

 

步骤一:引入JS文件

在需要调用JS接口的页面引入如下JS文件,(支持https):
旧的接口(不建议使用):

                    例如,页面head部分插入代码:<script src="http://static.ydbimg.com/API/YdbOnline.js" type="text/javascript"></script>

 

澳门金沙手机版 1蓝牙协议图

步骤二:初始化YDB对象

                初始化方法:var YDB = new YDBOBJ();
                //初始化之后才可以调用相应SDK方法,

 

步骤二:初始化YDB对象

                初始化方法:var YDB = new YDBOBJ();
                //初始化之后才可以调用相应SDK方法,

 

一个低功耗蓝牙设备可以定义许多 Service, Service
可以理解为一个功能的集合。设备中每一个不同的 Service 都有一个 128 bit 的
UUID 作为这个 Service
的独立标志。蓝牙核心规范制定了两种不同的UUID,一种是基本的UUID,一种是代替基本UUID的16位UUID。所有的蓝牙技术联盟定义UUID共用了一个基本的UUID:0x0000xxxx-0000-1000-8000-00805F9B34FB为了进一步简化基本UUID,每一个蓝牙技术联盟定义的属性有一个唯一的16位UUID,以代替上面的基本UUID的‘x’部分。例如,心率测量特性使用0X2A37作为它的16位UUID,因此它完整的128位UUID为:0x00002A37-0000-1000-8000-00805F9B34FB

步骤三:调用YDB的相关方法

                例如:YDB.SetHeadBar(0);
                //设置隐藏头部标题栏的全部属性
                //特别说明:YDB的调用要放到页面尾部,或者放入页面加载完事件中
                //方法一:jquery 中:$(function(){} 括号内写你的内容
                //方法二:使用body的onload属性,onload='someFunctionsWithJssdk()'
                //方法三:window.onload=function(){//someFunctionsDoWithJssdk}//用window的onload事件,窗体加载完毕的时候

步骤三:调用YDB的相关方法

                例如:YDB.SetHeadBar(0);
                //设置隐藏头部标题栏的全部属性
                //特别说明:YDB的调用要放到页面尾部,或者放入页面加载完事件中
                //方法一:jquery 中:$(function(){} 括号内写你的内容
                //方法二:使用body的onload属性,onload='someFunctionsWithJssdk()'
                //方法三:window.onload=function(){//someFunctionsDoWithJssdk}//用window的onload事件,窗体加载完毕的时候

在 Service 下面,又包括了许多的独立数据项,我们把这些独立的数据项称作
Characteristic。同样的,每一个 Characteristic 也有一个唯一的 UUID
作为标识符。在 Android
开发中,建立蓝牙连接后,我们说的通过蓝牙发送数据给外围设备就是往这些
Characteristic 中的 Value
字段写入数据;外围设备发送数据给手机就是监听这些 Charateristic 中的
Value 字段有没有变化,如果发生了变化,手机的 BLE API
就会收到一个监听的回调。

接口调用说明

所有接口通过实例YDB来调用,影响页面设置的优先级如下:页面内功能>全局设置>Url配置

接口调用说明

所有接口通过实例YDB来调用,影响页面设置的优先级如下:页面内功能>全局设置>Url配置

更详细的内容可以参见GATT Profile
简介通用属性配置文件及其服务,特性与属性介绍GATT specificationGATT
Services蓝牙协议介绍

全局定义

全局定义

BluetoothAdapterBluetoothAdapter
拥有基本的蓝牙操作,例如开启蓝牙扫描,使用已知的 MAC 地址
(BluetoothAdapter#getRemoteDevice)实例化一个 BluetoothDevice
用于连接蓝牙设备的操作等等。

初始化全局定义

                YDB.SetGlobal(参数1,参数2,参数3,参数4,参数5,参数6,参数7,参数8,参数9,参数10,参数11);
                //参数1(HeadBar) 是否显示标题栏,0为隐藏,1为显示
                //参数2(DragRefresh) 是否开启下拉刷新,0为关闭,1为开启
                //参数3(HeadBarExceptionList) 标识为隐藏顶部导航的例外(相反与HeadBar设置)名单(显示标题栏,参数为URL的字符串,多个URL以逗号分隔)页面列表
                //参数4(DragRefreshExceptionList) 下拉刷新例外(相反与DragRefresh
                //设置)名单(页面执行下拉刷新,参数为URL的字符串,多个URL以逗号分隔)   
                //参数5 (CashTime) 缓存时长,0为不缓存,其他整形数值配合CasgTimeUnit组成缓存时长
                //参数6 (CashTimeUnit) 缓存时间单位,小写字母,m/h/d  分别代表分钟/小时/天 ,字串类型   
                //参数7 (BackKeyUseType) 安卓手机返回键功能,0点击返回上级页面,1点击返回顶级页面
                //参数8 (ShowCloseButton) 是否显示关闭按钮,0隐藏,1显示
                //参数9 (CloseText) 自定义关闭按钮显示文字,''空字串则使用默认的“关闭”
                //参数10(ClearCookie) 关闭应用是否清除cookie,0不清除,1清除
                //参数11(BgColor) 设置App原生底色(App默认底色为#efefef),使用16进制颜色值设置,比如:#ffcc00

备注:全局属性优先级低于局部页面的优先级,所有多状态参数为int类型

初始化全局定义

                YDB.SetGlobal(参数1,参数2,参数3,参数4,参数5,参数6,参数7,参数8,参数9,参数10,参数11);
                //参数1(HeadBar) 是否显示标题栏,0为隐藏,1为显示
                //参数2(DragRefresh) 是否开启下拉刷新,0为关闭,1为开启
                //参数3(HeadBarExceptionList) 标识为隐藏顶部导航的例外(相反与HeadBar设置)名单(显示标题栏,参数为URL的字符串,多个URL以逗号分隔)页面列表
                //参数4(DragRefreshExceptionList) 下拉刷新例外(相反与DragRefresh
                //设置)名单(页面执行下拉刷新,参数为URL的字符串,多个URL以逗号分隔)   
                //参数5 (CashTime) 缓存时长,0为不缓存,其他整形数值配合CasgTimeUnit组成缓存时长
                //参数6 (CashTimeUnit) 缓存时间单位,小写字母,m/h/d  分别代表分钟/小时/天 ,字串类型   
                //参数7 (BackKeyUseType) 安卓手机返回键功能,0点击返回上级页面,1点击返回顶级页面
                //参数8 (ShowCloseButton) 是否显示关闭按钮,0隐藏,1显示
                //参数9 (CloseText) 自定义关闭按钮显示文字,''空字串则使用默认的“关闭”
                //参数10(ClearCookie) 关闭应用是否清除cookie,0不清除,1清除
                //参数11(BgColor) 设置App原生底色(App默认底色为#efefef),使用16进制颜色值设置,比如:#ffcc00

备注:全局属性优先级低于局部页面的优先级,所有多状态参数为int类型

BluetoothDevice代表一个远程蓝牙设备。这个类可以让你连接所代表的蓝牙设备或者获取一些有关它的信息,例如它的名字,地址和绑定状态等等。

APP界面控制类

APP界面控制类

BluetoothGatt这个类提供了 Bluetooth GATT
的基本功能。例如重新连接蓝牙设备,发现蓝牙设备的 Service 等等。

隐藏/显示顶部标题栏

                    YDB.SetHeadBar(0);
                   //参数说明:显示隐藏当前页的顶部导航菜单,0为隐藏,1为显示

隐藏/显示顶部标题栏

                    YDB.SetHeadBar(0);
                   //参数说明:显示隐藏当前页的顶部导航菜单,0为隐藏,1为显示

BluetoothGattService这一个类通过 BluetoothGatt#getService
获得,如果当前服务不可见那么将返回一个 null。这一个类对应上面说过的
Service。我们可以通过这个类的 getCharacteristic(UUID uuid) 进一步获取
Characteristic 实现蓝牙数据的双向传输。

隐藏底部菜单栏

                    YDB.SetMenuBar(0);
                   // 参数说明:显示隐藏底部菜单栏,0为隐藏,1为显示

适用模板:有导航模板

备注:

隐藏底部菜单栏

                    YDB.SetMenuBar(0);
                   // 参数说明:显示隐藏底部菜单栏,0为隐藏,1为显示

适用模板:有导航模板

备注:

BluetoothGattCharacteristic这个类对应上面提到的
Characteristic。通过这个类定义需要往外围设备写入的数据和读取外围设备发送过来的数据。

开启关闭下拉刷新

                    YDB.SetDragRefresh(0);
                    // 参数说明:设置开启关闭下拉刷新功能,0为关闭,1为开启

备注:

开启关闭下拉刷新

                    YDB.SetDragRefresh(0);
                    // 参数说明:设置开启关闭下拉刷新功能,0为关闭,1为开启

备注:

<uses-permission android:name="android.permission.BLUETOOTH"/> 使用蓝牙所需要的权限<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 使用扫描和设置蓝牙的权限(申明这一个权限必须申明上面一个权限)

隐藏/显示右侧菜单

                    YDB.SetMoreButton(0);
                   // 参数说明:设置是否显示右侧菜单按钮,0为关闭右侧菜单并隐藏右侧菜单按钮,1为显示右侧菜单按钮

备注:

隐藏/显示右侧菜单

                    YDB.SetMoreButton(0);
                   // 参数说明:设置是否显示右侧菜单按钮,0为关闭右侧菜单并隐藏右侧菜单按钮,1为显示右侧菜单按钮

备注:

在Android5.0之前,是默认申请GPS硬件功能的。而在Android 5.0
之后,需要在manifest 中申明GPS硬件模块功能的使用。

导航菜单动态隐藏

                    YDB.MenuBarAutoHide(0);
                    // 参数说明:设置是否开启菜单动态隐藏,0关闭,1开启
                    // 如果开启此功能,滑动屏幕动态隐藏显示菜单、标题栏

适用模板:有导航模板

备注:

导航菜单动态隐藏

                    YDB.MenuBarAutoHide(0);
                    // 参数说明:设置是否开启菜单动态隐藏,0关闭,1开启
                    // 如果开启此功能,滑动屏幕动态隐藏显示菜单、标题栏

适用模板:有导航模板

备注:

 <!-- Needed only if your app targets Android 5.0 (API level 21) or higher. --> <uses-feature android:name="android.hardware.location.gps" />

返回前一页面

                    YDB.GoBack();
                    // 返回前一页面

备注:

澳门金沙手机版:蓝牙开发入门,app之YdbOnline说明文档。返回前一页面

                    YDB.GoBack();
                    // 返回前一页面

备注:

在 Android 6.0
及以上,还需要打开位置权限。如果应用没有位置权限,蓝牙扫描功能不能使用(其它蓝牙操作例如连接蓝牙设备和写入数据不受影响)。

返回前一页面时执行的操作

                    YDB.IsReloadPreviousPage(operation);
                   //参数说明,  执行返回前一页面时的操作,operation当传值为1时,刷新前一页面,传值为前一页面的js方法名时,执行js方法。
                   //示例:<div  onclick="gobackprevious();">返回前一页面</div>
                   //function gobackprevious() { var YDB = new YDBOBJ();  YDB.IsReloadPreviousPage('javascript:get_user_status();'); YDB.GoBack(); }
                   //其中get_user_status()是您前一个页面的js方法名,返回前一页面时会执行您前一页面中的get_user_status()方法。

澳门金沙手机版:蓝牙开发入门,app之YdbOnline说明文档。备注:此功能仅适用于开启云开发插件的应用。

返回前一页面时执行的操作

                    YDB.IsReloadPreviousPage(operation);
                   //参数说明,  执行返回前一页面时的操作,operation当传值为1时,刷新前一页面,传值为前一页面的js方法名时,执行js方法。
                   //示例:<div  onclick="gobackprevious();">返回前一页面</div>
                   //function gobackprevious() { var YDB = new YDBOBJ();  YDB.IsReloadPreviousPage('javascript:get_user_status();'); YDB.GoBack(); }
                   //其中get_user_status()是您前一个页面的js方法名,返回前一页面时会执行您前一页面中的get_user_status()方法。

备注:此功能仅适用于开启云开发插件的应用。

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

澳门金沙手机版:蓝牙开发入门,app之YdbOnline说明文档。进入下一页面执行的操作

                    YDB.IsReloadNextPage(operation);
                   //参数说明, 进入到下一页面时, operation当传值为1时,刷新下一页面,传值为下一页面的js方法名时,执行js方法。
                   //示例 :var YDB = new YDBOBJ();  YDB.IsReloadNextPage('reload_page();');
                   //其中reload_page()是您下一个页面的js方法名,进入下一页面时会执行您下一页面中的reload_page()方法。

备注:此功能仅适用于IOS。

进入下一页面执行的操作

                    YDB.IsReloadNextPage(operation);
                   //参数说明, 进入到下一页面时, operation当传值为1时,刷新下一页面,传值为下一页面的js方法名时,执行js方法。
                   //示例 :var YDB = new YDBOBJ();  YDB.IsReloadNextPage('reload_page();');
                   //其中reload_page()是您下一个页面的js方法名,进入下一页面时会执行您下一页面中的reload_page()方法。

备注:此功能仅适用于IOS。

在建立蓝牙连接之前,需要确认设备支持
BLE。如果支持,再确认蓝牙是否开启。如果蓝牙没有开启,可以使用
BLuetoothAdapter 类来开启蓝牙。

关闭/开启安卓硬件加速

                    YDB.SetHardware(state);
                   //参数说明, state 关闭/开启安卓硬件加速,0为关闭,1为开启。
                   //示例 :var YDB = new YDBOBJ();  YDB.SetHardware(0);//关闭硬件加速

备注:此功能仅适用于安卓。

关闭/开启安卓硬件加速

                    YDB.SetHardware(state);
                   //参数说明, state 关闭/开启安卓硬件加速,0为关闭,1为开启。
                   //示例 :var YDB = new YDBOBJ();  YDB.SetHardware(0);//关闭硬件加速

备注:此功能仅适用于安卓。

  1. 获取 BluetoothAdapter

澳门金沙手机版:蓝牙开发入门,app之YdbOnline说明文档。返回顶级页面

                    YDB.GoTop();
                    // 返回顶级页面(跳转至此导航节点的起始页面)

备注:

返回顶级页面

                    YDB.GoTop();
                    // 返回顶级页面(跳转至此导航节点的起始页面)

备注:

调出右侧菜单

                    YDB.ShowTopRightMenu();
                    // 调出右侧菜单

备注:

调出右侧菜单

                    YDB.ShowTopRightMenu();
                    // 调出右侧菜单

备注:

 private BluetoothAdapter mBluetoothAdapter; // Initializes Bluetooth adapter. final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); mBluetoothAdapter = bluetoothManager.getAdapter();

单页面设置底色

                    YDB.SetBgColor(BgColor);
                    //设置App原生底色,使用16进制颜色值设置,比如:#ffcc00

备注:

单页面设置底色

                    YDB.SetBgColor(BgColor);
                    //设置App原生底色,使用16进制颜色值设置,比如:#ffcc00

备注:

  1. 如果检测到蓝牙没有开启,尝试开启蓝牙

显示/隐藏返回按钮

                    YDB.SetReturnButtonMode(showmode);
                    //参数说明,showmode  int类型,当传值为1时,显示返回按钮,传值为0 则隐藏返回按钮。

备注:

显示/隐藏返回按钮

                    YDB.SetReturnButtonMode(showmode);
                    //参数说明,showmode  int类型,当传值为1时,显示返回按钮,传值为0 则隐藏返回按钮。

备注:

打开新窗口

                     YDB.OpenNewWindow();
                    //等同于a标签中的target="_blank"。
                    //打包之后的应用需使用YDB.OpenNewWindow()方法代替target="_blank"。                    
                    //示例:<a href="new.html" onclick="OpenNewWindow();">新窗口打开</a>
                    //function OpenNewWindow(){var YDB = new YDBOBJ(); YDB.OpenNewWindow();}

备注:

打开新窗口

                     YDB.OpenNewWindow();
                    //等同于a标签中的target="_blank"。
                    //打包之后的应用需使用YDB.OpenNewWindow()方法代替target="_blank"。                    
                    //示例:<a href="new.html" onclick="OpenNewWindow();">新窗口打开</a>
                    //function OpenNewWindow(){var YDB = new YDBOBJ(); YDB.OpenNewWindow();}

备注:

 // Ensures Bluetooth is available on the device and it is enabled. If not, // displays a dialog requesting user permission to enable Bluetooth. if (mBluetoothAdapter == null || !mBluetoothAdapter.isEnabled { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); }

新窗口动画效果

                     YDB.AnimationWay("entranceway","exitway");
                    //参数说明:entranceway:页面入场方式,可选参数:0 从右往左 1 从下往上 exitway:页面出场方式,可选参数:0 从左往右 1 从上往下。
                    //当页面中使用YDB.OpenNewWindow()打开新窗口时,默认动画入场方式为(0)从右往左,出场方式为(0)从左往右。
                      仅支持YDB.AnimationWay("0","0") 和 YDB.AnimationWay("1","1")                 

备注:此功能需配合打开新窗口使用。

新窗口动画效果

                     YDB.AnimationWay("entranceway","exitway");
                    //参数说明:entranceway:页面入场方式,可选参数:0 从右往左 1 从下往上 exitway:页面出场方式,可选参数:0 从左往右 1 从上往下。
                    //当页面中使用YDB.OpenNewWindow()打开新窗口时,默认动画入场方式为(0)从右往左,出场方式为(0)从左往右。
                      仅支持YDB.AnimationWay("0","0") 和 YDB.AnimationWay("1","1")                 

备注:此功能需配合打开新窗口使用。

外围设备开启蓝牙后,会广播出许多的关于该设备的数据信息,例如 mac
地址,uuid 等等。通过这些数据我们可以筛选出需要的设备。

修改IOS状态栏文字颜色

                     YDB.SetStatusBarStyle(fontcolor);
                    //参数说明:fontcolor:文字颜色,可选参数:0 白色 1 黑色 
                    //示例:YDB.SetStatusBarStyle(1);修改IOS状态栏颜色为黑色

备注:此功能仅适用于IOS。

修改IOS状态栏文字颜色

                     YDB.SetStatusBarStyle(fontcolor);
                    //参数说明:fontcolor:文字颜色,可选参数:0 白色 1 黑色 
                    //示例:YDB.SetStatusBarStyle(1);修改IOS状态栏颜色为黑色

备注:此功能仅适用于IOS。

在 BluetoothAdapter
中,我们可以看到有两个扫描蓝牙的方法。第一个方法可以指定只扫描含有特定
UUID Service 的蓝牙设备,第二个方法则是扫描全部蓝牙设备。

是否固定底部导航

                     YDB.IsFixedBottomMenu(IntState);
                   //此功能为全局功能,仅调用一次即可。
                    //参数说明:IntState:是否固定,可选参数:0 固定(当页面有输入框等调用键盘的操作时,底部导航不会跟随键盘移动) 1 不固定(当页面有输入框等调用键盘的操作时,底部导航会跟随键盘移动),默认效果为不固定。 
                    //示例:YDB.IsFixedBottomMenu(0);设置底部导航不跟随键盘移动

备注:此功能仅适用于安卓。

是否固定底部导航

                     YDB.IsFixedBottomMenu(IntState);
                   //此功能为全局功能,仅调用一次即可。
                    //参数说明:IntState:是否固定,可选参数:0 固定(当页面有输入框等调用键盘的操作时,底部导航不会跟随键盘移动) 1 不固定(当页面有输入框等调用键盘的操作时,底部导航会跟随键盘移动),默认效果为不固定。 
                    //示例:YDB.IsFixedBottomMenu(0);设置底部导航不跟随键盘移动

澳门金沙手机版:蓝牙开发入门,app之YdbOnline说明文档。备注:此功能仅适用于安卓。

boolean startLeScan(UUID[] serviceUuids, BluetoothAdapter.LeScanCallback callback)

boolean startLeScan(BluetoothAdapter.LeScanCallback callback)

设置APP字体大小

                     YDB.SetFontSize();
                    //调用此方法可设置APP字体大小,可以选大小有:小号字、中号字、标准字、大号字、特大号字,调用方法之后在APP中直接选择即可。
                    //示例:var YDB = new YDBOBJ();YDB.SetFontSize();

备注:如调用方法没有生效,请重新生成应用后使用。

设置APP字体大小

                     YDB.SetFontSize();
                    //调用此方法可设置APP字体大小,可以选大小有:小号字、中号字、标准字、大号字、特大号字,调用方法之后在APP中直接选择即可。
                    //示例:var YDB = new YDBOBJ();YDB.SetFontSize();

备注:如调用方法没有生效,请重新生成应用后使用。

开启蓝牙扫描

调整屏幕亮度

                     YDB.SetBrightness(percent);
                    //调用此方法可调整屏幕亮度。
                    //参数说明:percent可选值为0到1,其中0最暗,1最亮。
                    //示例:var YDB = new YDBOBJ();YDB.SetBrightness("0.6");设置屏幕亮度为60%;

备注:如调用方法没有生效,请重新生成应用后使用。

调整屏幕亮度

                     YDB.SetBrightness(percent);
                    //调用此方法可调整屏幕亮度。
                    //参数说明:percent可选值为0到1,其中0最暗,1最亮。
                    //示例:var YDB = new YDBOBJ();YDB.SetBrightness("0.6");设置屏幕亮度为60%;

备注:如调用方法没有生效,请重新生成应用后使用。

final BluetoothAdapter.LeScanCallback callback = new BluetoothAdapter.LeScanCallback() { @Override public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) { bluetoothDeviceArrayList.add; Log.d(TAG, "run: scanning..."); }};mBluetoothAdapter.startLeScan;

点击全屏时是否横屏

                     YDB.IsShowLandcape(showMode);
                    //参数说明:参数 showMode,类型 int, 0 不横屏,1 横屏。
                    //示例:var YDB = new YDBOBJ();YDB.IsShowLandcape(0);//点击全屏时不横屏

备注:

点击全屏时是否横屏

                     YDB.IsShowLandcape(showMode);
                    //参数说明:参数 showMode,类型 int, 0 不横屏,1 横屏。
                    //示例:var YDB = new YDBOBJ();YDB.IsShowLandcape(0);//点击全屏时不横屏

备注:

在 LeScanCallback
回调的方法中,第一个参数是代表蓝牙设备的类,可以通过这个类建立蓝牙连接获取关于这一个设备的一系列详细的参数,例如名字,MAC
地址等等;第二个参数是蓝牙的信号强弱指标,通过蓝牙的信号指标,我们可以大概计算出蓝牙设备离手机的距离。计算公式为:d
= 10^( – A) /
;第三个参数是蓝牙广播出来的广告数据。当执行上面的代码之后,一旦发现蓝牙设备,LeScanCallback
就会被回调,直到 stopLeScan
被调用。出现在回调中的设备会重复出现,所以如果我们需要通过
BluetoothDevice 获取外围设备的地址手动过滤掉已经发现的外围设备。

横屏竖屏模式

                     YDB.ScreenOrientation(showMode);
                    //参数说明:参数 showMode,参数类型 int,0竖屏,1自适应,2横屏。
                    //示例:var YDB = new YDBOBJ();YDB.ScreenOrientation(2);//开启横屏模式

备注:

横屏竖屏模式

                     YDB.ScreenOrientation(showMode);
                    //参数说明:参数 showMode,参数类型 int,0竖屏,1自适应,2横屏。
                    //示例:var YDB = new YDBOBJ();YDB.ScreenOrientation(2);//开启横屏模式

备注:

停止蓝牙扫描

APP系统功能类

APP系统功能类

void stopLeScan(BluetoothAdapter.LeScanCallback callback)

扫一扫

扫一扫

通过调用 BluetoothAdapter#stopLeScan
可以停止正在进行的蓝牙扫描。这里需要注意的是,传入的回调必须是开启蓝牙扫描时传入的回调,否则蓝牙扫描不会停止。

无返回值方法

                    YDB.Scan();
                    // 参数说明:此方法无参数,直接调用扫一扫功能,扫描结果由App自行处理

备注:

无返回值方法

                    YDB.Scan();
                    // 参数说明:此方法无参数,直接调用扫一扫功能,扫描结果由App自行处理

备注:

由于蓝牙扫描的操作比较消耗手机的能量。所以我们不能一直开着蓝牙,必须设置一段时间之后关闭蓝牙扫描。示例代码如下:

有返回值方法

                    YDB.GetScan("你事先准备好的方法名");
                    //参数说明:web处理扫描结果,传入返回值处理方法名,在这个方法中处理扫描字串,
                    //例如,您定义的方法为 function DoWithScan(outValue){}; 
                    //那么,调用SDK可以这样写:YDB.GetScan("DoWithScan");

备注:

有返回值方法

                    YDB.GetScan("你事先准备好的方法名");
                    //参数说明:web处理扫描结果,传入返回值处理方法名,在这个方法中处理扫描字串,
                    //例如,您定义的方法为 function DoWithScan(outValue){}; 
                    //那么,调用SDK可以这样写:YDB.GetScan("DoWithScan");

备注:

private void scanLeDevice(final boolean enable) { if  { // Stops scanning after a pre-defined scan period. // 预先定义停止蓝牙扫描的时间(因为蓝牙扫描需要消耗较多的电量) mHandler.postDelayed(new Runnable() { @Override public void run() { mScanning = false; mBluetoothAdapter.stopLeScan(mLeScanCallback); } }, SCAN_PERIOD); mScanning = true; // 定义一个回调接口供扫描结束处理 mBluetoothAdapter.startLeScan(mLeScanCallback); } else { mScanning = false; mBluetoothAdapter.stopLeScan(mLeScanCallback); }}

分享

                    YDB.Share('标题','简介','图片路径','链接地址','回调方法');
                    // 参数说明:分别传入分享信息的标题、简介、图片路径、URL链接地址、分享回调方法名(接收分享结果的json字串)
                    //示例:var YDB = new YDBOBJ(); YDB.Share("测试分享标题", "测试分享标题内容", "http://static.ydbimg.com/Images/frontimg/logo.png", "http://www.yundabao.cn/","Shareback");
                    //回调方法:function Shareback(state) {alert("分享结果:" + JSON.stringify(state)); } 
                    //分享结果的json数据示例:{"platform":"Wechat","state":"success"},其中platform中的Wechat代表微信好友(其他分享平台分别是WechatMoments(微信朋友圈)、SinaWeibo(新浪微博)、QQ(QQ)、Qzone(QQ空间)、ShortMessage(短信)),state的三种返回结果:success、fail、cancel
                    //提示:如果您使用QQ分享回调的同时开启了QQ登录插件,QQ登录的插件参数APP ID需跟分享设置里的腾讯开放平台APP ID参数保持一致。微信分享回调需在分享设置页面开启微信分享回调才可正常使用。            

备注:
原YdbOnline方法YDB.Share(‘标题’,’简介’,’图片路径’,’链接地址’)可继续使用。

分享

                    YDB.Share('标题','简介','图片路径','链接地址','回调方法');
                    // 参数说明:分别传入分享信息的标题、简介、图片路径、URL链接地址、分享回调方法名(接收分享结果的json字串)
                    //示例:var YDB = new YDBOBJ(); YDB.Share("测试分享标题", "测试分享标题内容", "http://static.ydbimg.com/Images/frontimg/logo.png", "http://www.yundabao.cn/","Shareback");
                    //回调方法:function Shareback(state) {alert("分享结果:" + JSON.stringify(state)); } 
                    //分享结果的json数据示例:{"platform":"Wechat","state":"success"},其中platform中的Wechat代表微信好友(其他分享平台分别是WechatMoments(微信朋友圈)、SinaWeibo(新浪微博)、QQ(QQ)、Qzone(QQ空间)、ShortMessage(短信)),state的三种返回结果:success、fail、cancel
                    //提示:如果您使用QQ分享回调的同时开启了QQ登录插件,QQ登录的插件参数APP ID需跟分享设置里的腾讯开放平台APP ID参数保持一致。微信分享回调需在分享设置页面开启微信分享回调才可正常使用。            

备注:
原YdbOnline方法YDB.Share(‘标题’,’简介’,’图片路径’,’链接地址’)可继续使用。

连接蓝牙设备可以通过 BluetoothDevice#ConnectGatt 方法连接,也可以通过
BluetoothGatt#connect 方法进行重新连接。以下分别是两个方法的官方说明:

单个平台分享

                    YDB.SingleShare('标题','简介','图片路径','链接地址','要分享的平台','回调方法');
                    // 参数说明:分别传入分享信息的标题、简介、图片路径、URL链接地址、要分享的平台、分享回调方法名(接收分享结果的json字串)
                                         其中'要分享的平台'可选参数:0、1、2、3、4、5   说明:0微信好友 1微信朋友圈 2新浪微博 3QQ 4QQ空间 5信息
                    //示例:var YDB = new YDBOBJ(); YDB.SingleShare("测试分享标题", "测试分享标题内容", "http://static.ydbimg.com/Images/frontimg/logo.png", "http://www.yundabao.cn/","1","SingleShare");
                    //回调方法:function SingleShareback(state) {alert("分享结果:" + JSON.stringify(state)); }
                    //分享结果的json数据示例:{"platform":"Wechat","state":"success"},其中platform中的Wechat代表微信好友(其他分享平台分别是WechatMoments(微信朋友圈)、SinaWeibo(新浪微博)、QQ(QQ)、Qzone(QQ空间)、ShortMessage(短信)),state的三种返回结果:success、fail、cancel
                    //提示:如果您使用QQ分享回调的同时开启了QQ登录插件,QQ登录的插件参数APP ID需跟分享设置里的腾讯开放平台APP ID参数保持一致。微信分享回调需在分享设置页面开启微信分享回调才可正常使用。

备注:

单个平台分享

                    YDB.SingleShare('标题','简介','图片路径','链接地址','要分享的平台','回调方法');
                    // 参数说明:分别传入分享信息的标题、简介、图片路径、URL链接地址、要分享的平台、分享回调方法名(接收分享结果的json字串)
                                         其中'要分享的平台'可选参数:0、1、2、3、4、5   说明:0微信好友 1微信朋友圈 2新浪微博 3QQ 4QQ空间 5信息
                    //示例:var YDB = new YDBOBJ(); YDB.SingleShare("测试分享标题", "测试分享标题内容", "http://static.ydbimg.com/Images/frontimg/logo.png", "http://www.yundabao.cn/","1","SingleShare");
                    //回调方法:function SingleShareback(state) {alert("分享结果:" + JSON.stringify(state)); }
                    //分享结果的json数据示例:{"platform":"Wechat","state":"success"},其中platform中的Wechat代表微信好友(其他分享平台分别是WechatMoments(微信朋友圈)、SinaWeibo(新浪微博)、QQ(QQ)、Qzone(QQ空间)、ShortMessage(短信)),state的三种返回结果:success、fail、cancel
                    //提示:如果您使用QQ分享回调的同时开启了QQ登录插件,QQ登录的插件参数APP ID需跟分享设置里的腾讯开放平台APP ID参数保持一致。微信分享回调需在分享设置页面开启微信分享回调才可正常使用。

备注:

BluetoothDevice#connectGattBluetoothGatt connectGatt(Context context, boolean autoConnect, BluetoothGattCallback callback)

清理缓存

                    YDB.ClearCache();
                    //不需要参数,调用清理缓存的系统方法

备注:

清理缓存

                    YDB.ClearCache();
                    //不需要参数,调用清理缓存的系统方法

备注:

第二个参数表示是否需要自动连接。如果设置为 true,
表示如果设备断开了,会不断的尝试自动连接。设置为 false
表示只进行一次连接尝试。第三个参数是连接后进行的一系列操作的回调,例如连接和断开连接的回调,发现服务的回调,成功写入数据,成功读取数据的回调等等。

获取设备信息

                    YDB.GetDeviceInformation("处理返回值的函数名");
                    //参数说明:您需要定义处理返回值函数,例如 function DoWithDeviceInformation(info){/*do something with info*/};
                    //那么,调用SDK可以这样写:YDB. GetDeviceInformation ("DoWithDeviceInformation")

备注:

获取设备信息

                    YDB.GetDeviceInformation("处理返回值的函数名");
                    //参数说明:您需要定义处理返回值函数,例如 function DoWithDeviceInformation(info){/*do something with info*/};
                    //那么,调用SDK可以这样写:YDB. GetDeviceInformation ("DoWithDeviceInformation")

备注:

BluetoothGatt#connectboolean connect()

气泡提醒

                    YDB.PopUp(index,count);
                    //参数说明:index 字符串类型,设定气泡所在导航索引,从0开始,多个索引以逗号分隔; 
                    //count 字符串类型,设定气泡中显示数量的数字,多个数量以逗号分隔,跟索引数量要匹配。
                    //当count设置为零,则表示当前索引不显示气泡!
                    //示例:YDB.PopUp("0","2");//表示在第一个导航处带数字2的气泡提醒

备注:

气泡提醒

                    YDB.PopUp(index,count);
                    //参数说明:index 字符串类型,设定气泡所在导航索引,从0开始,多个索引以逗号分隔; 
                    //count 字符串类型,设定气泡中显示数量的数字,多个数量以逗号分隔,跟索引数量要匹配。
                    //当count设置为零,则表示当前索引不显示气泡!
                    //示例:YDB.PopUp("0","2");//表示在第一个导航处带数字2的气泡提醒

备注:

调用这一个方法相当与调用 BluetoothDevice#connectGatt 且第二个参数
autoConnect 设置为 true。

上传图片、拍照上传功能

                    此功能不需要JS支持,页面中只要包含上传组件即可,在用户点击上传的时候,App会自动启动选取相册中图片文件或者调用拍照功能。

备注:

上传图片、拍照上传功能

                    此功能不需要JS支持,页面中只要包含上传组件即可,在用户点击上传的时候,App会自动启动选取相册中图片文件或者调用拍照功能。

备注:

当调用蓝牙的连接方法之后,蓝牙会异步执行蓝牙连接的操作,如果连接成功会回调
BluetoothGattCalbackl#onConnectionStateChange
方法。这个方法运行的线程是一个 Binder
线程,所以不建议直接在这个线程处理耗时的任务,因为这可能导致蓝牙相关的线程被阻塞。

图片预览

                    YDB.ImageViewState(state);
                    //参数说明:如果要开启图片预览功能,需要在相应页面调用此功能,当state设置为0时关闭图片预览功能;当state设置为1时,开启图片预览功能,
                    //同时,页面中在需要预览功能支持的图片超链接进行如下设置:
                    //需要在图片外层img标签增加属性Is9VImg="true",当Is9vImg值为true时,点击图片会启动App的图片浏览器。
                    //需要注意的是img的图片路径src必须是可以直接访问的带http/https的网络路径。

备注:

图片预览

                    YDB.ImageViewState(state);
                    //参数说明:如果要开启图片预览功能,需要在相应页面调用此功能,当state设置为0时关闭图片预览功能;当state设置为1时,开启图片预览功能,
                    //同时,页面中在需要预览功能支持的图片超链接进行如下设置:
                    //需要在图片外层img标签增加属性Is9VImg="true",当Is9vImg值为true时,点击图片会启动App的图片浏览器。
                    //需要注意的是img的图片路径src必须是可以直接访问的带http/https的网络路径。

备注:

void onConnectionStateChange(BluetoothGatt gatt, int status, int newState)

相关文章