基于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 条评论
登录 后参与评论

相关文章

来自专栏刘远飞的专栏

CentOS6.5系统yum安装LAMP环境

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

6870
来自专栏乐沙弥的世界

配置共享服务器模式

两者完成相同的任务,即处理所有指定的SQL操作。假定从客户端提交一个任意查询(DQL)到数据库服务器不论是专用模式还是共享

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

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

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

6182
来自专栏Seebug漏洞平台

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

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

37710
来自专栏数据之美

使用 django-blog-zinnia 搭建个人博客

django-blog-zinnia 虽然小巧,但是具备了个人博客应用的全部基础功能,且具有很高的拓展性,并且开箱即用。以下是官方列出的一些特性: 评论 站...

2849
来自专栏张善友的专栏

基于WAS 部署WCF服务

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

22510
来自专栏沃趣科技

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

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

34511
来自专栏用户2442861的专栏

Tomcat源码 Connector(2)

 Connector是Tomcat最核心的组件之一,负责处理一个WebServer最核心的连接管理、Net IO、线程(可选)、协议解析和处理的工作。 一、...

901
来自专栏Felix的技术分享

《一个操作系统的实现》笔记(2)--保护模式

2728
来自专栏NetCore

Identity Service - 解析微软微服务架构eShopOnContainers(二)

接上一篇,众所周知一个网站的用户登录是非常重要,一站式的登录(SSO)也成了大家讨论的热点。微软在这个Demo中,把登录单独拉了出来,形成了一个Service,...

2475

扫码关注云+社区