Android提高之BLE开发Android手机搜索iBeacon基站

前面文章讲述了Android手机与BLE终端之间的通信,而最常见的BLE终端应该是苹果公司倡导的iBeacon基站。iBeacon技术基于BLE,它的特点是通过广播对外发送消息,手机不需要连上iBeacon基站也能获取它的信息,目前主要用来做室内定位和营销信息推送,在BLE发出的广播里带上带上特定的信息从而被识别为iBeacon。在iOS里面使用iBeacon要经过passbook注册iBeacon的UUID和对应的文字简介,而在Android上则无类似passbook这种系统级的后台蓝牙搜索服务,这类服务需要开发者自己搞定。这次就讲讲Android手机搜索基站和显示iBeacon基站参数。

搜索iBeacon基站的不难,核心在于BluetoothAdapter.LeScanCallback()的onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord),而识别iBeacon的信息就在于scanRecord数组。按照https://github.com/RadiusNetworks/android-ibeacon-service/blob/master/src/main/java/com/radiusnetworks/ibeacon/IBeacon.java,识别是否iBeacon靠下面的红字:

// AirLocate:
// 02 01 1a 1a ff 4c 00 02 15  # Apple's fixed iBeacon advertising prefix
// e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 # iBeacon profile uuid
// 00 00 # major
// 00 00 # minor
// c5 # The 2's complement of the calibrated Tx Power

同时要注意iBeacon的UUID和BLE的Service、Characteristic、Descriptor的UUID是没关系,iBeacon的UUID是广播的时候发出,是由Apple自己定义的标准,而Service、Characteristic、Descriptor必须是连上BLE终端后才得到,是BLE标准。

本文代码运行结果如下,不断变化rssi可以用来做距离判断,不过这个模块的txPower不太准,所以测距就没意义:

本文代码点此本站下载,代码就不贴出来了,核心代码点此本站下载。

感兴趣的朋友可以下载本站代码测试一下运行效果,希望对大家学习Android程序设计有一定的帮助。

时间: 2014-08-07

android实现读取、搜索联系人的代码

代码很简单,就不多废话了 复制代码 代码如下: //读取联系人 public static Uri CONTACTSURI = ContactsContract.Contacts.CONTENT_URI;//联系人     public static void getContactsInfo(Context context,String tag){         String[] projections = new String[]{ContactsContract.Contacts._ID,

Android拨号盘 支持T9搜索和号码搜索等拨号盘案例

之前做通讯录软件,其中在做拨号盘的时候一直为怎么实现T9输入烦恼,上网找了很多帖子,都没有满意的答案.不过最后终于是实现了,看社区内好像也有不少朋友需要,在此分享一下.这个是在我项目中提取出来的拨号盘案例,功能上完全实现了目前其他通讯录中拨号盘的功能,但在加载效率上还有不足,请各位大侠指教. 有图有真相:     目前我用1g单核cpu的索爱mt15i的测试机,1500多的联系人,加载时间大概在8秒左右,当然,一般用户不会有这么多联系人的.由于我做的程序不是在一开始的界面就是拨号盘,所以我在程序

Android百度地图实现搜索和定位及自定义图标绘制并点击时弹出泡泡

一.问题描述 上一次我们使用百度地图实现基本的定位功能,接下来我们继续实现搜索和定位,并使用LocationOverlay绘制定位位置,同时展示如何使用自定义图标绘制并点击时弹出泡泡 如图所示: 二.编写MyApplication类 public class MyApplication extends Application { private static MyApplication mInstance = null; public boolean m_bKeyRight = true; pu

Android文本框搜索和清空效果实现代码及简要概述

前言 本文实现的效果:文本框输入为空时显示输入的图标;不为空时显示清空的图标,此时点击清空图标能清空文本框内输入文字. 正文 一.实现效果 二.实现代码 绑定事件 复制代码 代码如下: private Drawable mIconSearchDefault; // 搜索文本框默认图标 private Drawable mIconSearchClear; // 搜索文本框清除文本内容图标 @Override protected void onCreate(Bundle savedInstanceS

Android实现搜索功能并本地保存搜索历史记录

本文实例为大家分享了Android实现搜索功能,并且需要显示搜索的历史记录,供大家参考,具体内容如下 效果图: 本案例实现起来很简单,所以可以直接拿来嵌入项目中使用,涉及到的知识点: - 数据库的增删改查操作 - ListView和ScrollView的嵌套冲突解决 - 监听软键盘回车按钮设置为搜索按钮 - 使用TextWatcher( )实时筛选 - 已搜索的关键字再次搜索不重复添加到数据库 - 刚进入页面设置软键盘不因为EditText而自动弹出 代码 RecordSQLiteOpenHel

Android SearchView搜索框组件的使用方法

SearchView是搜索框组件,它可以让用户在文本框里输入文字,通过监听器取得用户的输入,当用户点击搜索时,监听器执行实际的搜索. 本文就为大家分享了SearchView搜索框组件的使用方法,供大家参考,具体内容如下 效果: 代码SearchActivity.java package com.jialianjia.bzw.activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.

Android搜索框组件SearchView的基本使用方法

SearchView是android系统中内置的一个搜索框组件,可以很方便在添加在用户界面之上,但是也带来了一些问题,那就是searchview的UI是固定的,定制起来会很麻烦,如果对SearchView的要求比较高,完全可以采用button和EditText自己实现.这里先简单的说说SearchView的使用: main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" x

Android编程实现二级下拉菜单及快速搜索的方法

本文实例讲述了Android编程实现二级下拉菜单及快速搜索的方法.分享给大家供大家参考,具体如下: 一.我们要做什么? 上面有个搜索框,下面是一个二级下拉菜单. 输入查询内容,下面列表将显示查询结果. 二.界面设计 (1)这是主框架(部分属性已经省去,请看源码),从上至下分别是文本框,列表,二级列表. <?xml version="1.0" encoding="utf-8"?> <LinearLayout> <LinearLayout

Android 百度地图POI搜索功能实例代码

在没介绍正文之前先给大家说下poi是什么意思. 由于工作的关系,经常在文件中会看到POI这三个字母的缩写,但是一直对POI的概念和含义没有很详细的去研究其背后代表的意思.今天下班之前,又看到了POI这三个字母,决定认认真真的搜索一些POI具体的含义. POI是英文的缩写,原来的单词是point of interest, 直译成中文就是兴趣点的意思.兴趣点这个词最早来自于导航地图厂商.地图厂商为了提供尽可能多的位置信息,花费了很大的精力去寻找诸如加油站,餐馆,酒店,景点等目的地,这些目的地其实都可

Android搜索框通用版

之前项目总会遇到很多搜索框类的功能,虽然不是很复杂,不过每次都要去自己处理数据,并且去处理搜索框的变化,写起来也比较麻烦,今天来做一个比较简单的通用搜索栏. 先看下效果图: 没什么特别的,只是今天要做的就是简单的把搜索框的内容封装一下. 一.分析功能 先考虑一下,搜索框一般都是由一个搜索图标(一般都是一个放大镜),一个输入框和一个清除按钮组成.然后会通过监听输入框的变化去处理清除按钮的显示和隐藏并且去过滤相关的数据.最后去刷新适配器,显示过滤后的数据.基本上搜索框的功能都大同小异. 有了上边的分

Android搜索框SearchView属性和用法详解

SearchView简介 SearchView是Android原生的搜索框控件,它提供了一个用户界面,用于用户搜索查询. SearchView默认是展示一个search的icon,点击icon展开搜索框,如果你想让搜索框默认就展开,可以通过setIconifiedByDefault(false);实现. SearchView属性 SearchView使用 xml中定义SearchView: <?xml version="1.0" encoding="utf-8"

Android搜索框(SearchView)的功能和用法详解

SearchView是搜索框组件,它可以让用户在文本框里输入文字,通过监听器取得用户的输入,当用户点击搜索时,监听器执行实际的搜索. 1.SearchView组件的常用方法如下: ①setIconifiedByDefault(boolean iconified) ===> 设置搜索框默认是否自动缩小为图标. ②setOnQueryTextListener(SearchView,OnQueryTextListener listener) ===> 为搜索框设置监听器 ③setSubmitButt

android搜索框上下滑动变色效果

搜索框上下滑动变透明度是现在APP中很常见的效果,先看看效果: 首先来看下布局骨架: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height

Android自定义View实现搜索框(SearchView)功能

概述 在Android开发中,当系统数据项比较多时,常常会在app添加搜索功能,方便用户能快速获得需要的数据.搜索栏对于我们并不陌生,在许多app都能见到它,比如豌豆荚 在某些情况下,我们希望我们的自动补全信息可以不只是纯文本,还可以像豌豆荚这样,能显示相应的图片和其他数据信息,因此Android给我们提供的AutoCompleteTextView往往就不够用,在大多情况下我们都需要自己去实现搜索框. 分析 根据上面这张图,简单分析一下自定义搜索框的结构与功能,有 1. 搜索界面大致由三部门组成

Android仿简书搜索框效果的示例代码

前言 之前用简书的时候一直是在web端,后来下载了客户端,看到了搜索的那个动画,就尝试的去写了,没写之前感觉挺容易的,写了之后,就感觉里面还是有些要注意的东西的.话不多说,直接上图. Activity 布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android&quo

Android 改变图标原有颜色和搜索框的实例代码

图标改变颜色:Drawable的变色,让Android也能有iOS那么方便的图片色调转换,就像同一个图标,但是有多个地方使用,并且颜色不一样,就可以用这个方法了. 搜索框: 一般是EditText实现,本文 实现 TextView图片和文字居中,键盘搜索. 来看看效果图: 图标改变颜色:第一个界面的左边(二维码)和右边(更多)两个实现,我放进去的图片是黑色的,显示出来是白色的. 搜索框:第一个界面的图片和文字居中,还可以设置间距,第二个见面搜索设置键盘搜索按钮,点击搜索监听事件,清除内容的图标.

Android顶部(toolbar)搜索框实现的实例详解

Android顶部(toolbar)搜索框实现的实例详解 本文介绍两种SearchView的使用情况,一种是输入框和搜索结果不在一个activity中,另一种是在一个activity中. 首先编写toolbar的布局文件 toolbar中图标在menu文件下定义一个布局文件实现 示例代码: <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.