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

之所以会接触到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了。开始调试吧。
 
 
 
 
 
 
 
到这里

基于android studio编译工具下的android开发之IBeacon 例子的更多相关文章

  1. 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字“Hello Android”,并将应用程序的名称更改为“FirstApp”。

    需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字"Hello Android",并将应用程序的名称更改为"Firs ...

  2. 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行

    需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行 实现步骤: 打开 Android Studio,创建一个 Andr ...

  3. Android反编译工具的使用-Android Killer

    今天百度搜索“Android反编译”搜索出来的结果大多数都是比较传统的教程.刚接触反编译的时候,我也是从这些教程慢慢学起的.在后来的学习过程中,我接触到比较方便操作的Android反编译.在这,我将使 ...

  4. 解决Android studio导航tools下没有android怎么打开DDMS工具

    因为这个功能用的人少, 新版本就去掉菜单入口了, 但这个功能并没有删除,打开方式:点开terminal ,也就是AS自带的命令行工具, 输入monitor 回车就启动了, 1.点开terminal 2 ...

  5. 【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解 (旧版本 | 仅作参考)

    . 基本上可以导入项目开始使用了 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21035637 ...

  6. 【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解

    . 基本上可以导入项目开始使用了 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21035637 ...

  7. 手把手图文并茂教你用Android Studio编译FFmpeg库并移植

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52661331 之前曾写过一篇&l ...

  8. Android 反编译工具简介

    Android 反编译工具: 所需工具:1 apktool : 用于获取资源文件 2 dex2Jar : 用于将classes.dex转化成jar文件 2 jd-gui: 将jar文件转化成java文 ...

  9. Android studio 编译失败Error:Could not read entry &#39;:app:processDebugManifest&#39; from cache taskArtifacts.b

    Android studio 编译失败 Error:Could not read entry ':app:processDebugManifest' from cache taskArtifacts. ...

随机推荐

  1. Python之路【第三篇】python基础 之基本数据类型 补充

    字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-310 ...

  2. java-JDBC登录注册代码

    登录: public static void main(String[] args) throws Exception{ Scanner sc = new Scanner(System.in); Sy ...

  3. xcode8控制台输出很多日志

    解决方法:command + shift + <,在环境变量里添加图中字段就行了.

  4. PHP uniqid 高并发生成不重复唯一ID

    http://www.51-n.com/t-4264-1-1.html PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳.在高并发或者间隔时长极短(如循环代码)的情 ...

  5. What's the difference between a stub and mock?

    I believe the biggest distinction is that a stub you have already written with predetermined behavio ...

  6. final关键字(final是最终的)

    final关键字(final是最终的) 1.final修饰特点 a.修饰类,类不能被继承 b.修饰变量,变量就变成了常量, 修饰基本数据类:final int num = 10; 修饰引用数据类型变量 ...

  7. .Net开发笔记(十五) 基于“泵”的TCP通讯(接上篇)

    上一篇博客中说了基于“泵”的UDP通讯,附上了一个Demo,模拟飞鸽传书的功能,功能不太完善,主要是为了说明“泵”在编程中的应用.本篇文章我再附上一个关于TCP通讯的两个Demo,也都采用了“泵”模式 ...

  8. 给Mac OS X的“逻辑宗卷组”改名

    近日更新了Mac OS X的10.10版本——Yosemite,感觉良好,但当我在打开磁盘工具的时候发现了一个美中不足的地方,磁盘宗卷组的名字居然还是我之前的“Mavericks”,如图: 如何对它进 ...

  9. .Net程序员面试所需要的一些技术准备

    夜已经很深了,但却毫无睡意,最近找工作和面试感触良多,所以想记录下来这段过程. 作为一个.Net程序员,不可否认是比JAVA要难混的.甚至在智联招聘或者大街网都没有.NET程序员的备用选项.真是令人悲 ...

  10. ARM的常数表达式

    ARM的常数表达式   如果说Intel指令中的立即数,相信大家都很熟悉.类似的,Arm指令中的“立即数”就是常数表达式.之所以称为常数表达式,而不称为立即数是有原因的. Intel指令属于CISC指 ...