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

相关文章

来自专栏Nian糕的私人厨房

Vue2.0 Vuex初始化及歌手数据的配置

本次的系列博文的知识点讲解和代码,主要是来自于 黄轶 在慕课网的 Vue 2.0 高级实战-开发移动端音乐WebApp 课程,由个人总结并编写,其代码及知识点...

913
来自专栏FreeBuf

七种方法绕过安卓手机锁屏

为了避免手机中一些重要的隐私信息,被其他人获取或访问到,例如:短信、通讯录、照片等内容。我们通常都会设置锁屏,来保护我们的手机。而在 Android智能机中,最...

1848
来自专栏Android常用基础

Tinker-使用教程与原理分析(上)

前面我们讲解了AndFix的使用,这篇我们来讲解下微信的Tinker热修复,相比AndFix,Tinker的功能更加全面,更主要的是他支持gradle。他不仅做...

951
来自专栏技术博文

sublime text2快捷键的使用

1. 文件快速导航:  这是sublime上面很好用的功能之一, ctrl+p可以调出窗口,菜单上的解释是gotoanythings ,确实如其所言,调出窗口后...

2996
来自专栏mukekeheart的iOS之旅

iOS学习——iOS项目Project 和 Targets配置详解

  最近开始学习完整iOS项目的开发流程和思路,在实际的项目开发过程中,我们通常需要对项目代码和资料进行版本控制和管理,一般比较常用的SVN或者Github进行...

3857
来自专栏开源优测

Robot Framework | 02 从抛弃RIDE开始创建你的RFS测试

概述 大多数情况下,我们用RobotFramework时,一般基于其图形界面的RIDE来编辑、管理、执行用例。 今天我们分享下基于非编辑器模式的RobotFra...

3079
来自专栏开源优测

Robot Framework | 02 从抛弃RIDE开始创建你的RFS测试

概述 大多数情况下,我们用RobotFramework时,一般基于其图形界面的RIDE来编辑、管理、执行用例。 今天我们分享下基于非编辑器模式的RobotFra...

3854
来自专栏流柯技术学院

android自动化之monkeyrunner

运行monkeyrunner之前必须先运行相应的模拟器或连上设备,不然monkeyrunner无法连接设备。

672
来自专栏生信技能树

请品鉴我的vim配置

背景 本人是生信工程师,主要使用的语言是 python, R, perl, shell,经常要ssh到远程服务器上写代码,因此学习了vim,后来发现了spf13...

3736
来自专栏葡萄城控件技术团队

Mobile first! Wijmo 5 + Ionic Framework之:Hello World!

本教程中,我们用Wijmo 5 和 Ionic Framework实现一个Mobile的工程:Hello World。 Ionic是什么? Ionic是一个HT...

1946

扫码关注云+社区