精华内容
下载资源
问答
  • 蓝牙beacon

    2020-11-11 17:09:31
    蓝牙beacon是低功耗蓝牙的一种,只能广播信息(发送信息),不能接收信息。 而且蓝牙beacon是成品。 蓝牙beacon,一般用于定位,广播信息等。 由蓝牙beacon发射信号,移动设备定位接收,反馈信号。 ...

    蓝牙beacon是低功耗蓝牙的一种,只能广播信息(发送信息),不能接收信息。

    而且蓝牙beacon是成品。

    蓝牙beacon,一般用于定位,广播信息等。

    由蓝牙beacon发射信号,移动设备定位接收,反馈信号。

     

    展开全文
  • 蓝牙Beacon

    2020-02-25 18:46:28
    1.什么是Beacon Apple在2013年9月发布移动设备时,宣布在自己的移动设备上配iBeacon的新功能,近期将推出自己的beacon硬件设备。 这种技术能够实现室内定位,让你的手机能够知道是否处于一个beacon的范围内。使用...

    1.什么是Beacon

    • Apple在2013年9月发布移动设备时,宣布在自己的移动设备上配iBeacon的新功能,近期将推出自己的beacon硬件设备。
    • 这种技术能够实现室内定位,让你的手机能够知道是否处于一个beacon的范围内。使用这种技术能够产生很多应用程序:比如帮助你在停车场找到你的汽车,或者在零售店中根据所处位置提供优惠券或者其它一些位置相关的服务。还有很多我们现在无法想象得到的应用程序

    2.Beacon数据格式

    2.1 Eddystone Beacon

    在这里插入图片描述

    2.2 Apple Beacon

    • Apple修正iBeacon的数据格式

    在这里插入图片描述

    如下:苹果iBeacon

    iBeacon prefix (fixed): 02 01 06 1A FF 4C 00 02 15

    proximity UUID:B9 40 7F 30 F5 F8 46 6E AF F9 25 55 6B 57 FE 6D

    major:00 49

    minor:00 0A

    complement of measured TX power:C5

    3.Beacon详解

    • proximity UUID

    这是将你所有的beacon与其他人的beacon设备区别开的id!例如,目前在
    商店里某个区域分布着多个beacon形成一条“链带”,用于为顾客提供特定
    的服务,那么归属于同一条“链带”的beacon将分配到相同的proximity
    UUID。为这条“链带”设计的专用应用程序将会在后台使用这个UUID扫描
    到这条“链带”中的beacon设备

    • major

    用于将相关的beacon标识为一组。例如,一个商店中的所有beacon将会分
    配到相同的major编号。通过这种方式,应用程序就能够知道顾客位于哪一
    家商店

    • minor

    用于标识特定的beacon设备。例如一个商店中的每一个beacon设备都拥有
    唯一的minor编号,这样你才能够知道顾客位于商店中的哪个位置。

    • TxPower

    用于确定你和beacon之间距离有多近。根据这个值不但可以获得粗略的信息

    • TxPower

    用于确定你和beacon之间距离有多近。根据这个值不但可以获得粗略的信息
    (比如靠近/远离/不在范围内等),也可以获取精确到米的距离

    展开全文
  • android 蓝牙Beacon开发

    2019-11-25 17:15:32
    最近在做android 蓝牙Beacon开发,记录一下一些个人心得:1.蓝牙Beacon主要的应用场景: (1)用于室内定导航,如大型超市、博物馆、机场、校园等; (2)信息推送(商场活动、景区游览、博物馆展品信息); (3)和微信摇一...

    最近在做android 蓝牙Beacon开发,记录一下一些个人心得:
    1.蓝牙Beacon主要的应用场景:
    (1)用于室内定导航,如大型超市、博物馆、机场、校园等;
    (2)信息推送(商场活动、景区游览、博物馆展品信息);
    (3)和微信摇一摇结合,摇互动、摇签到、摇导航等。

    2.蓝牙beacon广播包广播出来的信息包括4个方面:
    (1)蓝牙beacon的MAC地址(广播包来自于哪一个 MAC 地址的从机设备);
    (2)蓝牙beacon的信号强度RSSI值(扫描者在搜索到此Beacon时的信号强度);
    (3)还有广播出来的数据包的内容,该数据包内容最多可以包含 31 个字节的内容(超出会广播失败);
    (4)蓝牙beacon的UUID(服务ID,也可以携带数据包内容);

    3.android设备硬件要求:
    支持蓝牙BLE功能
    //判断手机是否支持BLE
    if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
        Log.i(TAG, "支持BLE");
    } else {
        Log.i(TAG, "不支持BLE");
    }

    4.权限要求:

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

    5.判断是否授权定位权限:
    这里我使用的权限库是:  implementation 'pub.devrel:easypermissions:1.1.0',实现方法不再赘述。
    (1)首先检查权限:

        private String[] perms = { Manifest.permission.ACCESS_FINE_LOCATION};
        private static final int REQUEST_CODE = 0x01;
        private void checkPerms() {
            if(Build.VERSION.SDK_INT>=23){
                if(EasyPermissions.hasPermissions(MainActivity.this,perms)){
                    sendBeacon();
                }else {
                    EasyPermissions.requestPermissions(MainActivity.this,"需开启定位权限",REQUEST_CODE,perms);
                }
            }else {
                sendBeacon();
            }
        }

    (2)打开蓝牙:

        private BluetoothLeAdvertiser mBluetoothLeAdvertiser;
        private BluetoothAdapter bluetoothAdapter;
        private void sendBeacon(){
            BluetoothManager bluetoothManager = (BluetoothManager)getSystemService(Context.BLUETOOTH_SERVICE);
            bluetoothAdapter = bluetoothManager.getAdapter();
            //实际项目需监听蓝牙已开启,再执行后续操作,本demo不做详细阐述,只提供思路
            if(bluetoothAdapter.isEnabled()){  // 判断蓝牙是否可用
                bluetoothAdapter.enable();  // 打开蓝牙
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        mBluetoothLeAdvertiser = bluetoothAdapter.getBluetoothLeAdvertiser();
                        startAdvertising();
                    }
                },2000);
            }
        }

    6.设置广播:
    先来了解一下AdvertiseSettings,它主要是设置广播模式,用来控制广播性能及延迟。

    6.1 setAdvertiseMode(设置频率):
    ADVERTISE_MODE_LOW_LATENCY 100ms (低延迟)
    ADVERTISE_MODE_BALANCED  250ms   (平衡模式)
    ADVERTISE_MODE_LOW_POWER 1s      (低功耗)

    6.2 setTxPowerLevel(设置广播发送功率,由高到低):
    ADVERTISE_TX_POWER_HIGH = 3;
    ADVERTISE_TX_POWER_MEDIUM = 2;
    ADVERTISE_TX_POWER_LOW = 1;
    ADVERTISE_TX_POWER_ULTRA_LOW = 0;

    6.3 setConnectable(设置广播类型是否可连接)
    true:可连接
    false:不可连接

    6.4 setTimeout(设置广播超时时间):
    int型,不得超过180000毫秒;如果设置值为0将禁用时间限制,一直广播;

        private AdvertiseSettings buildAdvertiseSettings() {
            AdvertiseSettings.Builder settingsBuilder = new AdvertiseSettings.Builder();
            settingsBuilder.setAdvertiseMode(AdvertiseSettings.ADVERTISE_MODE_LOW_LATENCY);
            settingsBuilder.setTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_HIGH);
            settingsBuilder.setConnectable(false); // 一般设置不可连接,可根据实际场景设置
            settingsBuilder.setTimeout(0);
            return settingsBuilder.build();
        }

    7.设置UUID及数据包:
    AdvertiseData方法介绍:
    addServiceUuid(ParcelUuid serviceUuid): // 添加服务UUID,也可以通过多次add的方式来组自定义数据包
    addServiceData(ParcelUuid serviceDataUuid, byte[] serviceData):  // 添加服务UUID及自定义数据包
    addManufacturerData(int manufacturerId, byte[] manufacturerSpecificData):   // 添加制造商特定UUID及自定义数据包
    setIncludeTxPowerLevel(boolean includeTxPowerLevel):  // 发送数据包中是否应包括发射功率电平
    setIncludeDeviceName(boolean includeDeviceName):       // 是否包含设备名称,尽量不要设置为true,否则会导致可携带的自定义数据包大大减小;
    这里几种发送数据包的方式type不同,具体可在接收数据包中查看。

        private final static String Service_UUID = "00001234-0000-1000-8000-00805F9B34FB";
        // 发送自定义数据包
        private AdvertiseData buildAdvertiseData() {
            AdvertiseData.Builder dataBuilder = new AdvertiseData.Builder();
          //  dataBuilder.setIncludeDeviceName(true); 

            dataBuilder.addServiceUuid(ParcelUuid.fromString(Service_UUID));

            return dataBuilder.build();
        }

    8.蓝牙Beacon广播结果回调
    这里说一下返回的常见的几种errorCode:

        public static final int ADVERTISE_FAILED_DATA_TOO_LARGE = 1;   // 常见错误,广播的数据包太大,无法启动广播,检查一下是否有设置dataBuilder.setIncludeDeviceName(true);如果有,改为false;如果未设置,那就是数据包超出了最大长度。
        public static final int ADVERTISE_FAILED_TOO_MANY_ADVERTISERS = 2;// 没有可用的广播实例
        public static final int ADVERTISE_FAILED_ALREADY_STARTED = 3; //广播已经开始,无法开始广播
        public static final int ADVERTISE_FAILED_INTERNAL_ERROR = 4;  // 由于内部错误,操作失败
        public static final int ADVERTISE_FAILED_FEATURE_UNSUPPORTED = 5; //该平台不支持此功能
        个人在实际开发的过程中,还遇到过errorCode=7的情况,而出现这种情况是由于sendDatas中的数据包太短,仅供参考。


        public class MyAdvertiseCallback extends AdvertiseCallback {

            private String TAG = getClass().getName();
            @Override
            public void onStartFailure(int errorCode) {
                super.onStartFailure(errorCode);
                Log.i(TAG, "AdvertiseCallback onStartFailure");
            }

            @Override
            public void onStartSuccess(AdvertiseSettings settingsInEffect) {
                super.onStartSuccess(settingsInEffect);
                Log.i(TAG, "AdvertiseCallback onStartSuccess");
            }
        }


    9.开始蓝牙广播

        private void startAdvertising() {
            if (mAdvertiseCallback == null) {
                AdvertiseSettings settings = buildAdvertiseSettings();
                AdvertiseData data = buildAdvertiseData();
                mAdvertiseCallback = new MyAdvertiseCallback();
                if (mBluetoothLeAdvertiser != null) {
                    if(mAdvertiseCallback != null){
                        mBluetoothLeAdvertiser.stopAdvertising(mAdvertiseCallback);  //  如果之前未停止广播,先停止广播
                    }
                    mBluetoothLeAdvertiser.startAdvertising(settings, data, mAdvertiseCallback);
                }
            }
        }

    10.停止广播:

        if (mBluetoothLeAdvertiser != null) {
                mBluetoothLeAdvertiser.stopAdvertising(mAdvertiseCallback);
        }

    这里推荐一款软件-- nRF Connect ,可以接收到蓝牙Beacon包,以验证自己发的包数据。
        
    以上即为本人在开发蓝牙Beacon的一些心得,如有不足之处,欢迎指导~    

       
     

    展开全文
  • 蓝牙beacon入门教程

    万次阅读 2018-10-06 18:27:05
    蓝牙beacon入门教程 项目 项目 项目
    • 介绍
        2014年,许多组织开始着力开发蓝牙beacon试点项目,到2015年,已经有许多公司开始尝试利用部署好的蓝牙beacon探索新的服务模式。据市场研究机构(ABI Research)预测,预计到2019年,beacon将有6千万的市场占有量。
        在大多数应用场景中,蓝牙beacon主要用于室内定位。不论在商场,机场,办公室,还是博物馆,都可以利用这些位置信息来提供服务。在这些案例中,通过将蓝牙beacon安装在特定位置,然后利用智能手机上的APP与之交互,就可以达到定位的效果。有趣的是,目前市场上还出现了一种新的beacon应用,它们并不需要安装在固定位置。未来我们还会看到更多涉及移动可穿戴beeacon的解决方案,例如Lighthouse,这是一种可穿戴beacon设备,可以用来定位有特殊需要的学生,并确保他们的安全。
        蓝牙beacon使用了蓝牙BLE技术,是蓝牙BLE的诸多应用之一。

    • 蓝牙beacon产品
      在这里插入图片描述
        如上图所示,市面上已经出现了许多蓝牙beacon产品,它们具有不同的形状和大小,但都使用了蓝牙BLE技术,并实现同样的目的。

    • 广播工作
      在这里插入图片描述
        BLE协议栈采用了分层结构,其中有一层称为GAP(Generic Access Profile),该层负责设备间的广播,搜寻以及连接。搜寻过程涉及广播设备和扫描设备。广播设备以固定的间隔向外广播数据包,这些数据包中的信息可以帮助扫描设备确定该设备是否是其感兴趣的设备。
        Beacon设备也进行广播,但是其它设备不需要与其进行连接。我们可以称其为广播者(BLE规范中广播者只广播不接受连接请求)。手机应用只需要利用广播包中的相关信息就可以实现定位的目的,因此不需要与beacon设备进行连接。下面我们将介绍beacon设备发出的广播包所包含的详细信息。

    • Beacon帧格式
        广播数据包最多仅可以包含31字节数据,所以设计者必须慎重选择需要包含的数据。蓝牙SIG组织在Core Specification Supplement (CSS)文件中将这31个字节数据分成多个AD Type结构,每个AD Type都有相同的结构,分别为长度字节,类型字节以及数据域。
        Beacon设备可以在一个或多个标准广播数据包中编码数据,传递信息。但是编码原理可能有所差异,即帧格式不同。目前主流的三种帧格式分别为苹果公司的iBeacon,Radius Networks公司的AltBeacon以及谷歌公司的Eddystone。
        因此为了与不同的beacon设备进行交互,应用开发者在开发beacon应用时需要了解对应设备的帧格式。

    • iBeacon帧格式
        在上述三种帧格式中,最广为人知的当属苹果公司的iBeacon。iBeacon使用了称为厂商数据字段的标准AD Type结构。如下图所示,为iBeacon的广播包,按AD Type结构进行分割如下:
      在这里插入图片描述
        厂商数据字段的类型值为0xFF,应用只要对其包含的信息进行解析,就可获得需要的信息。
      在这里插入图片描述
        厂商数据字段的数据域前2字节为公司识别码。由蓝牙SIG组织分配给各公司,指示后续数据的解码方式。在上图中,0x004C为苹果公司的ID。0x02指明该设备为“proximity beacon”,该值在iBeacon设备中均为0x02。UUID指明拥有该beacon设备的机构。主次字段用来编码位置信息,通常主字段指明某个建筑,而次字段指明在这栋建筑中的特定位置。例如“伦敦中心商场,运动产品区”。发送功率字段帮助应用进行距离估算。有关iBeacon的详细内容可以参考Getting started with iBeacon

    • AltBeacon帧格式
        AltBeacon帧格式与iBeacon类似,如下图所示,更多详细内容可以访问AltBeacon
      在这里插入图片描述

    • Eddystone帧格式
        谷歌公司的Eddystone与iBeacon及AltBeacon有所不同。它没用使用所谓的厂商数据字段,而是使用16位服务UUID字段以及服务数据字段。Eddystone还定义了如下图所示的子类型,具体内容可以参考eddystone
      在这里插入图片描述

    • Beacon应用

      • 专用应用还是通用beacon浏览器?
          不同机构部署的beacon设备需要对应的应用与之交互,才能正确获取需要的信息,为用户提供服务。例如在机场里,当用户通过某个beacon设备时,应用会向用户提供航班信息等服务。
          由于不同beacon设备广播数据的解码方式不同,就需要特定的应用才能解析对应的beacon设备所发出的信息。谷歌开发的Eddystone可以广播特定的URL,我们可以利用浏览器访等访问该URL,因此我们只需设计一个可以访问URL的通用beacon应用就可以了。
      • API
          开发者在API方面有两种选择 。他们可以使用原生BLE API扫描和捕获beacon设备的广播包,或者使用beacon制造商提供的更高层的专用beacon API进行数据帧的解析。例如Radius Networks公司就提供了Android 库进行AltBeacon的操作。开发者可以自由选择合适的方式,不同方法有不同的优缺点,例如原生BLE API控制更加灵活,而第三方库开发速度更快。
    • 我在哪里?
        这个问题的回答有多种方式,确切的说,这个问题应该说成“beacon在哪里?”我们可以用确切的GPS位置回答,也可以用描述性的语言如“伦敦中心商场运动产品区” 来回答。或者使用“在霸王龙旁边”之类的语言。
      在这里插入图片描述
        iBeacon和AltBeacon不直接向外发送位置信息。应用需要以某种方式将UUID/Major/Minor (iBeacon) 或UUID/Beacon Code (AltBeacon)映射到本地数据。为此我们可以使用多种方式,最简单的几种方式是:

    1. 查找手机本地数据库;
    2. 查找远程服务器数据库;
    3. 参考本地数据库同时在网络条件适宜时与远程数据库进行同步。
    • 距离估算
      在这里插入图片描述
        估算用户与某个beacon设备距离的标准方法是计算该beacon设备的信号强度,然后进行路径损耗计算。信号强度称为RSSI,即接收信号强度标识。利用RSSI以及广播包中的Tx功率值进行路径损耗计算,并给出距离beacon设备一米的信号强度值。维基百科对此计算过程给出了更详细解释path loss calculations
        上述方法只能对距离进行粗略的估计,因为环境条件对距离计算有显著影响。如果需要更精确的距离计算可以使用射频指纹技术。这种方法将位置与射频信号特征相结合,从而获取更好的测量结果。国际计算机研究中心对此给出了相关介绍Radio Fingerprinting

    • 扫描
        Beacon应用会进行周期性地扫描并进行过滤,从而获取感兴趣的设备信息。扫描过程功耗较高,因此开发者需要避免进行长时间的扫描。扫描过程主要涉及两个不同的参数配置。“扫描窗口”指明每次扫描持续时间,“扫描间隔”即为两次扫描间的时间。不同的平台对此提供的API不同,但都可以概括为这两种。
        为了确定以上两个参数的大小,我们需要考虑beacon设备的广播间隔。如果beacon设备2000毫秒广播一次,那么每100毫秒进行一次持续500毫秒的扫描是没有意义的。因为有时beacon设备并没有发送广播,此时进行扫描当然就白白浪费了。需要注意的一点是,从蓝牙4.2开始,蓝牙广播就不再是确定的了,将会加入随机延时以避免持续冲撞,因此开发者需要采用合适的方法同步扫描与广播时序。

    • 消失的Beacon
        每次应用扫描的时候都会检测到0至多个beacon设备,应用可能会连续多次扫描到同一个设备,因为用户要走出某一特定beacon设备的范围,所花的时间要比广播间隔长得多,广播间隔往往只有几百毫秒。
        当到达某一位置时,某个beacon设备会消失在搜索结果中,此时你的应用需要对此作出响应。应用可以认为用户已经走出该beacon设备的覆盖范围,但是这样可能会出错。因为扫描不到某个beacon设备可能有多个原因,几次扫描不到也并不意味着下次也扫描不到。也可能用户走到某个障碍物后面导致信号衰减较大,从而扫描不到设备。当用户走出障碍物附近时就可以再次接收到beacon设备信号。简言之,用户会一直在beacon设备附近,即使短时间内收不到广播数据包。
        应用需要维护一个活动beacon列表,保存接近用户的beacon设备。应用可以选择在最近一次扫描不到设备时就将其移除活动列表或者在连续多次扫描不到设备时才将其移除,又或者在扫描不到设备一段时间后将其移除。上述方法可以获得更好的用户体验。

    • 蓝牙,Beacon,Action!
        从beacon设备获取位置信息后该怎么做?这些都是与特定应用相关的。应用可以与用户进行信息交互,例如展示附近的博物馆展品信息。
      在这里插入图片描述
        如果你确实想要与用户交互,你就需要获取用户信息,但是不要经常这样做。因为信息很容易激怒用户,他们知道如何卸载应用程序!
        应用可以在后台默默地工作,例如在机场追踪用户位置,帮助用户获取航班信息。我们需要尊重用户隐私,只在用户允许的范围内与之交互。

    • 不要打扰
        用户想要的东西因人而异。例如当一家人逛商场时,他们可能并不希望手机向其通知什么商场特殊优惠活动,如果是一个人逛商场那他可能就需要了。应用开发者需要考虑到这一点,允许用户关闭应用通知,获得最优的用户体验。

    • 穿戴式beacon
        扫一眼穿戴式设备如智能手表比从口袋里拿出手机要方便的多。智能手表可以安装许多有趣的beacon应用。
      在这里插入图片描述

    • 开发自己的beacon
        开发者需要对其应用进行测试,这意味着在他们的测试环境中需要安装beacon设备。开发者需要使用与其应用相对应的beacon设备,但是在此之前,为了开发更加方便高效,我们最好使用可编程设备作为测试beacon。例如使用树莓派或者Intel Edison,它们可以达到与蓝牙芯片商或模块商所开发的专业蓝牙开发板同样的效果,编程和修改参数都非常方便。例如德州仪器开发的SensorTag可以很容易变成一台beacon设备,而且不需要做任何复杂编程操作,同时它也提供了丰富的功能用于专业的蓝牙开发。

    • 总结
        未来beacon将部署在各种环境中,在物联网时代,开发者通过了解它们的工作原理以及学习如何利用它们,将会受益良多!

    展开全文
  • 蓝牙Beacon包格式详解

    千次阅读 2021-01-01 01:19:20
    蓝牙Beacon格式详解 本文重点在结合Bluetooth官网spec和几个例子来使beacon帧格式更加容易被理解。 广播帧格式: 首先beacon是蓝牙BLE广播包的一种,蓝牙广播帧格式如下: PS:其实BLE数据帧除了报头字段和...
  • VG02是一款蓝牙Beacon设备。蓝牙Beacon是一种基于蓝牙BLE协议的广播协议,也指代拥有这种广播协议的BLE外围设备。VG02作为一个蓝牙Beacon设备,它通常被安装在一个合适的位置,同时它将连续周期性地向它的周围环境...
  • RN蓝牙beacon包的发送 ios部分 我在写公司的项目时有一个功能是需要蓝牙beacon包的收发 期间碰到过许多的问题 比如之前一版我将init只做初始化用 在发送包方法里再赋值UUID等参数导致项目使用一段时间后突然出现点击...
  • 室内定位之蓝牙Beacon-部署方案

    千次阅读 2017-03-21 18:51:11
    蓝牙Beacon要求 在电池工作时长稳定、环境结构不太复杂的前提下,符合以下标准的蓝牙beacon是可以较好支持的: 1、协议:符合ibeacon标准协议(苹果官方) 2、UUID、major、minor:固定不变 3、天线:全向天线 4、...
  • 作为室外定位向室内环境的延伸,为了处理室外定位导航“最后一公里”的问题,室内定位根据蓝牙定位网关、蓝牙Beacon的室内定位计划,常常会有客户问到,这两种计划有什么区别,今日,我们就来了解一下蓝牙的室内定位...
  • VG03是基于Nrodic nRF52840的蓝牙5.0 Beacon。VG03用一个CR2477纽扣电池供电,电池使用寿命与VG03内部参数设置有关。此外,VG03内部的PCB板上留有烧录口和一对UART串口。 VG03是一款蓝牙5.0 Beacon设备。蓝牙5.0 ...
  • 蓝牙Beacon广播数据包格式以及解析

    千次阅读 2019-05-04 11:36:57
    1. 获取原始蓝牙广播包 首先需要开启开发者选项:不同Android手机打开此功能的方法基本一致,首先打开设置,然后找到系统版本号(例如MIUI系统的全部参数选项的MIUI版本),快速连续点击5次以上即可自动打开开发者...
  • 树莓派学习 23. 树霉派启用蓝牙Beacon

    千次阅读 2019-05-31 17:02:00
    两个树霉派通过蓝牙互连 一、蓝牙基础知识 参考文章 苹果在BLE的基础上推出了iBeacon协议。iBeacon使用了BLE的广播部分,但不建立连接。一个遵守iBeacon协议的外设称为BeaconBeacon会广播自己的身份信息和...
  • 随着我国城市经济的快速发展,各大城市集吃喝玩乐一站式体验... 云里物里的iBeacon采用低功耗蓝牙技术,体积小、低功耗、部署成本低,且消费者的手机均支持蓝牙功能,部署起来很简单,能够轻松实现商场的室内定位导航。
  • { @Override public void didRangeBeaconsInRegion(Collection beacons, Region region) { if (beacons.size() > 0) { Log.i("INFORMATION", "The first beacon I see is about "+beacons.iterator().next()....
  • 如何用蓝牙基站扫描蓝牙beacon设备锚点透传功能透传格式透传过滤 金桔蓝牙基站默认是常开蓝牙扫描,通过金桔ACserver可以关闭基站的蓝牙扫描功能,金桔蓝牙基站主要对四种设备进行扫描传输:beacon设备(锚点设备)...
  • 一款可以模拟BLE蓝牙beacon信号的APP。 Beacon Simulator This app transforms your Android device into a virtual BLE beacon advertiser and transmitter. You can create your own collection of beacon ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,867
精华内容 746
关键字:

蓝牙beacon