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

之所以会接触到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. 代码片段:处理HTTP请求的接口

    以下程序用来获取用户传递过来的信息. 1.头文件 /* * 这个是处理HTTP请求的接口头文件 */ #define KEY_VALUE_MAX 1024 /* 键值的最大长度 */ typedef ...

  2. eclipse插件开发入门

    2016-09-09 17:11:50 1. 概述 1.1 SWT/JFace 是Eclipse 的基础,Eclipse 的 Workbench 就是建立在 SWT/JFace 之上的.另外,JFac ...

  3. eclipse 中的注释 快捷键

    (1)Ctrl+Space  说明:内容助理.提供对方法,变量,参数,javadoc等得提示, 应运在多种场合,总之需要提示的时候可先按此快捷键. 注:避免输入法的切换设置与此设置冲突 (2)Ctrl ...

  4. 【实战Java高并发程序设计6】挑战无锁算法:无锁的Vector实现

    [实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...

  5. norm函数的作用,matlab

    格式:n=norm(A,p)功能:norm函数可计算几种不同类型的返回A中最大一列和,即max(sum(abs(A))) 2 返回A的最大奇异值,和n=norm(A)用法一样 inf 返回A中最大一行 ...

  6. clojure基础入门(一)

    最近在看storm的源码,就学习分享下clojure语法. 阅读目录: 概述 变量 运算符 流程控制 总结 概述 clojure是一种运行在JVM上的Lisp方言,属于函数式编程范式,它和java可以 ...

  7. 新版C#编译器关于函数闭包的一处更改

    感谢@DiryBoy的补充,他提到这个问题在MSDN上是有说明的: http://msdn.microsoft.com/en-us/library/vstudio/hh678682.aspx 在Vis ...

  8. MyISAM和InnoDB

    MyISAM和InnoDB MyISAM MyISAM使用B+tree作为索引结构,叶节点存放的是数据地址. MyISAM不支持事务和外键. MyISAM是表锁,对数据库写操作时会锁住整个表,效率低. ...

  9. OpenGL快问快答

    OpenGL快问快答 本文内容主要来自对(http://www.opengl.org/wiki/FAQ)的翻译,随机加入了本人的观点.与原文相比,章节未必完整,含义未必雷同,顺序未必一致.仅供参考. ...

  10. EF:Fluent API 把一对多映射为一对一

    假设有两张表:A表和B表.A表与B表在数据库中的关系是一对多,但我们需要在EF中映射为一对一. 首先在A实体类和B实体类中互相为对方增加一个实体类的属性: public A { public B B ...