基于android studio编译工具下的android开发之IBeacon 例子

想直接看主要内容的请调到红字下面。

      之所以会接触到android下的IBeacon,是因为我自己导师给的任务。一个网址http://estimote.com/和一句话:看看这个网站,然后试下在安卓手机实现与IBeacon的对接。

      在这之前,我从来没听说过IBeacon和BLE技术,点开网站,发现都是英文的,细看才知道是关于IBeacon产品的官网。看了下它们的示范flash,觉得挺吊。

重点:

      于是开始着手找资料。首先找的是estimote 的 android-SDK,网址https://github.com/Estimote/Android-SDK 点击右边的Download zip就可以下载它的SDK和demos了。SDK的jar包共个2个,一个是estimote-sdk-preview-javadoc.jar,另一个是estimote-sdk-preview.jar。

      下载好了,我这里先说下上面的两个jar包的导入吧。以前在eclipse导入就方便得多了,在android studio有点麻烦,这个我本人也琢磨了挺久。

      下面的方法摘自网友:

1、将jar包放入项目里的libs文件夹中;

2、在project选中该jar包,点击右键选择:"Add as library";

完成到第2步,即可在项目中import了。

import com.estimote.sdk.Beacon;

import com.estimote.sdk.connection.BeaconConnection;

但是项目在编译时会出现,这时需要进行第3步:

3、在项目的build.gradle文件里的dependencies节加入 

dependencies {

    compile files('libs/android-support-v4.jar')//这行原来就存在的,需要添加的是下面那行

    compile files('libs/estimote-sdk-preview-javadoc.jar')//加入这一行

     compile files('libs/estimote-sdk-preview.jar')//加入这一行

}

再次编译项目,可正常编译并运行了,但创建引用jar里的类实例时,系统会抛出异常NoClassDefFoundError,此时需要操作第4步;

4、开始-运行输入cmd进行命令窗口;

   cd 具体的项目存放位置

   运行 gradlew.bat clean

   命令执行结果如下:   

C:\Users\WD>cd C:\Users\WD\AndroidStudioProjects\wdLogin

C:\Users\WD\AndroidStudioProjects\wdLogin>gradlew.bat clean

The TaskContainer.add() method has been deprecated and is scheduled to be remove

d in Gradle 2.0. Please use the create() method instead.

:wdLogin:clean

BUILD SUCCESSFUL

Total time: 10.552 secs

C:\Users\WD\AndroidStudioProjects\wdLogin>Exit

   重新编译,此时可正常使用了。

      OK,jar包导入了,这时的你可能就很兴高采烈地去导入刚下载的demos工程了。导入后,你很可能会发现,我艹,怎么里面的java文件的j图标全变红了。同时调试的绿色三角形图标也变成了灰色。

      如果你也遇到了这个问题,我很抱歉,原因我现在也还不知道到,如果你知道了,麻烦也告诉下小弟,下方留言,谢谢!这里我提供一个解决方法。

      新建一个工程,把下载里面的demos工程的java文件,复制粘贴进去新建工程的java包下。同时res下的layout的xml文件也要迁移,记住,jar包你这时也要重新导入到这个新工程里面了。

      最后提一下 AndroidMainfest.xml 文件的修改,首先要赋蓝牙权限,在<application 上方加入

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<service android:name="com.estimote.sdk.service.BeaconService"
         android:exported="false"/>
同时,记得要保持每个java文件第一行的名包名要改为和java文件下下的包名一致。A...M..f.xml里面的package=""也要写正确包名。

  到这里,基本OK了。开始调试吧。

到这里

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网杂技

SpringBoot ( 十二 ) :SpringBoot 如何测试打包部署

有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发、调试...

11620
来自专栏张善友的专栏

基于WAS 部署WCF服务

Windows (Process) Activation Service (WAS)作为 IIS7.0 特有的新增功能,和以前IIS 6.0的功能相比更加强大,...

290100
来自专栏刘远飞的专栏

CentOS6.5系统yum安装LAMP环境

采用Linux下二进制模式来安装LAMP,适合初学者,测试使用。

86300
来自专栏Seebug漏洞平台

使用 XML 内部实体绕过 Chrome 和 IE 的 XSS 过滤器

来源:BypassingXSSFiltersusingXMLInternalEntities 原作者:DavidLitchfield (david@davidl...

437100
来自专栏沃趣科技

ASM 翻译系列第三十六弹:ACFS磁盘组的重平衡操作

原作者:Bane Radulovic 译者: 魏兴华 审核: 魏兴华 DBGeeK社区联合出品 原文链接:http://asmsupportguy....

396110
来自专栏大魏分享(微信公众号:david-share)

用Ansible自动供应vmware虚拟机--构建数据中心一体化运维平台第二篇

1.1 简述 一直以来,打开邮箱被ticket糊一脸的事情时有发生。我一直在想,能不能以一种简单的方案(不花老板的钱)来供应(provisioning)虚拟机呢...

78020
来自专栏草根专栏

使用Identity Server 4建立Authorization Server (1)

本文内容基本完全来自于Identity Server 4官方文档: https://identityserver4.readthedocs.io/ 官方文档很详...

565100
来自专栏程序员的SOD蜜

使用“消息服务框架”(MSF)实现分布式事务的三阶段提交协议(电商创建订单的示例)

1,示例解决方案介绍 在上一篇 《消息服务框架(MSF)应用实例之分布式事务三阶段提交协议的实现》中,我们分析了分布式事务的三阶段提交协议的原理,现在我们来看看...

35590
来自专栏别先生

一脸懵逼学习Nginx及其安装,Tomcat的安装

1:Nginx的相关概念知识:   1.1:反向代理:     反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然...

283100
来自专栏我的博客

手把手教你,隐藏apache以及php版本信息

玩过linxu的筒子都知道这个命令 curl –head www.0377joyous.com [root@Joyous ~]# curl –head www....

50650

扫码关注云+社区

领取腾讯云代金券