基於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了。開始調試吧。
 
 
 
 
 
 
 
到這里


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM