




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
濱海迅騰科技集團(tuán)項(xiàng)目四酒精檢測學(xué)習(xí)目標(biāo)通過U酒保項(xiàng)目酒精檢測模塊的實(shí)現(xiàn),了解藍(lán)牙連接方式,學(xué)習(xí)使用進(jìn)度條顯示酒精濃度,掌握復(fù)雜JSON解析方法,在任務(wù)實(shí)現(xiàn)過程中:了解藍(lán)牙匹配形式了解藍(lán)牙通信協(xié)議及方法掌握進(jìn)度條使用方法掌握J(rèn)SON多種解析方式任務(wù)路徑情景導(dǎo)入酒精濃度的測試方法有很多,常見的是交警手中的酒精檢測儀,通過駕駛員呼出氣體進(jìn)行酒精含量的檢測。U酒保軟件的開發(fā)能夠使酒精檢測更加便捷。將手機(jī)與檢測裝置通過藍(lán)牙連接后,進(jìn)入主界面,點(diǎn)擊屏幕上的“立即檢測”的同時(shí)向檢測儀呼氣,在界面顯示相應(yīng)的酒精濃度值。本項(xiàng)目通過酒精檢測模塊的實(shí)現(xiàn),講解藍(lán)牙通信以及圓形進(jìn)度條的使用方法。藍(lán)牙藍(lán)牙(Bluetooth)是目前使用最廣泛的無線通信協(xié)議,主要針對短距離的設(shè)備通訊,可實(shí)現(xiàn)移動設(shè)備和樓宇(或個(gè)人)域網(wǎng)之間的數(shù)據(jù)交換,常用于連接耳機(jī),鼠標(biāo)等。在應(yīng)用中,藍(lán)牙相關(guān)的API有兩個(gè),BluetoothAdapter代表本地的藍(lán)牙適配器,BluetoothDevice代表遠(yuǎn)程的藍(lán)牙適配器。該兩種API都屬于android:bluetooth.*中的類,該類中重要類作用如表4.1所示。
藍(lán)牙簡介藍(lán)牙本地藍(lán)牙適配。通過BluetoothAdapter類控制本地藍(lán)牙設(shè)備。該類代表應(yīng)用程序的Android設(shè)備,為訪問默認(rèn)的BluetoothAdapter,需調(diào)用getDefaultAdapter()。BluetoothAdapter適配類包含的方法如表4.2所示。遠(yuǎn)程藍(lán)牙適配。BluetioothDevice對象代表遠(yuǎn)程藍(lán)牙設(shè)備,通過該類可查詢遠(yuǎn)程設(shè)備物理地址、連接狀態(tài)、名稱等信息,該類的操作執(zhí)行在遠(yuǎn)程藍(lán)牙設(shè)備硬件上,對象獲取途徑:調(diào)用BluetoothAdapter的getRemoteDevice()方法獲取該類對象對應(yīng)的物理地址調(diào)用BluetoothAdapter的getBoundedDevices()方法,可獲取已配對的藍(lán)牙設(shè)備集合
藍(lán)牙適配藍(lán)牙藍(lán)牙的啟動方式藍(lán)牙適配器指藍(lán)牙設(shè)備的轉(zhuǎn)換接口,采用了全球通用的短距無線連接技術(shù),讀取任何一種本地的BluetoothAdapter屬性、啟動藍(lán)牙進(jìn)行掃描、找到綁定設(shè)備、修改本地屬性,都需在AndroidManifest.xml文件下添加BLUETOOTH_ADMIN使用權(quán)限,具體代碼如下所示。<uses-permissionandroid:name="android.permission.BLUETOOTH"/><uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN"/>
藍(lán)牙適配藍(lán)牙打開藍(lán)牙的方式有兩種:Android系統(tǒng)彈出提示框,提示用戶是否開啟藍(lán)牙設(shè)備,具體代碼如下所示。Intentenabler=newIntent(BluetoothAdapter.ACTION_REQUEST_ENABLE);startActivityForResult(enabler,REQUEST_ENABLE);直接打開藍(lán)牙設(shè)備,在運(yùn)用當(dāng)中視情況而定,有些情況需要提示,有些情況則可直接打開使用,具體代碼如下所示。BluetoothAdapter_bluetooth=BluetoothAdapter.getDefaultAdapter();_bluetooth.enable();藍(lán)牙適配進(jìn)度條進(jìn)度條(ProgressBar)是用于顯示某個(gè)耗時(shí)操作完成百分比的組件,在UI界面中非常實(shí)用,能夠動態(tài)地顯示操作進(jìn)度。在執(zhí)行耗時(shí)操作時(shí),用戶通過進(jìn)度條變化確認(rèn)程序是否失去響應(yīng),以此提高用戶界面友好性,提高用戶體驗(yàn)性。在應(yīng)用中,系統(tǒng)提供了兩大類進(jìn)度條樣式,長形進(jìn)度條(progressBarStyleHorizontal)和圓形進(jìn)度條(progressBarStyleLarge)。本項(xiàng)目主要介紹自定義圓形進(jìn)度條的使用。ProgressBar簡介進(jìn)度條在兩大類進(jìn)度條樣式下又可以分為六種不同風(fēng)格的進(jìn)度條,通過設(shè)置ProgressBar的style屬性,可實(shí)現(xiàn)不同樣式的進(jìn)度條,style屬性設(shè)置如表4.3所示。ProgressBar屬性方法進(jìn)度條ProgressBar在運(yùn)用過程中還支持多種常用XML屬性如表4.4所示。ProgressBar屬性方法進(jìn)度條在Java代碼中,ProgressBar提供了以下方法來操作進(jìn)度。
setProgress(int):設(shè)置進(jìn)度條的完成百分比incrementProgressBy(int):設(shè)置進(jìn)度條的進(jìn)度。當(dāng)int為正數(shù)時(shí)進(jìn)度增加;為負(fù)數(shù)時(shí)進(jìn)度減少tileify(drawable,false)方法和tileifyIndeterminate(drawable)方法。這兩個(gè)方法主要是對Drawable進(jìn)行解析、轉(zhuǎn)換的過程ProgressBar屬性方法進(jìn)度條設(shè)計(jì)圓弧圓環(huán)樣式,并根據(jù)進(jìn)度畫圓弧。具體代碼如CORE0403所示。使用onDraw()方法畫外層的圓環(huán),并設(shè)置圓心、半徑、顏色等。具體代碼如CORE0401所示。設(shè)置進(jìn)度百分比以及字體寬度。具體代碼如CORE0402所示。設(shè)計(jì)圓弧圓環(huán)樣式,并根據(jù)進(jìn)度畫圓弧。具體代碼如CORE0403所示。圓形進(jìn)度條的實(shí)現(xiàn)復(fù)雜JSON解析JSON(JavaScriptObjectNotation)是一種輕量級的數(shù)據(jù)交換格式,基于ECMAScript的一個(gè)子集。JSON采用獨(dú)立于語言的文本格式,但也使用了類似于C語言家族的習(xí)慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。易于閱讀、編寫、解析和生成(一般用于提升網(wǎng)絡(luò)傳輸速率),Json格式如表4.5所示。JSON簡介復(fù)雜JSON解析Android平臺自帶了JSON解析的相關(guān)API,可以將文件、輸入流中的數(shù)據(jù)轉(zhuǎn)化為JSON對象,然后從對象中獲取JSON保存的數(shù)據(jù)內(nèi)容。JSON解析在包org.json下,主要有以下幾個(gè)類:JSONObject??煽醋魇荍SON對象,是系統(tǒng)中有關(guān)JSON定義的基本單元,其包含一對(Key/Value)數(shù)值。它對外部調(diào)用的響應(yīng)體現(xiàn)為一個(gè)標(biāo)準(zhǔn)的字符串(例如:{"JSON":"Hello,World"},最外被大括號包裹,其中的Key和Value被冒號分隔)。JSON解析方法復(fù)雜JSON解析JSONStringer。JSON文本構(gòu)建類(JSONStringer),該類可以幫助快速便捷的創(chuàng)建JSONtext。其最大的優(yōu)點(diǎn)在于可以減少格式的錯(cuò)誤導(dǎo)致的程序異常,引用這個(gè)類可以自動嚴(yán)格按照J(rèn)SON語法規(guī)則(syntaxrules)創(chuàng)建JSONtext。每個(gè)JSONStringer實(shí)體只能對應(yīng)創(chuàng)建一個(gè)JSONtext。JSON解析方法復(fù)雜JSON解析JSONArray。代表一組有序數(shù)值。將其轉(zhuǎn)換為String輸出,其形式使用方括號包裹,數(shù)值以逗號分隔(例如:[value1,value2,value3]),利用簡短的代碼更加直觀的了解其格式。該類的內(nèi)部具有查詢功能,get()和put()兩種方法都可以通過index索引返回指定的數(shù)值,put()方法用來添加或者替換數(shù)值。該類的value類型包括:Boolean、JSONArray、JSONObject、Number、String或者默認(rèn)值JSONObject.NULLobject。JSON解析方法復(fù)雜JSON解析JSONTokener。JSON解析類.JSONException。JSON.org類拋出的異常信息。JSON解析方法復(fù)雜JSON解析傳統(tǒng)JSON解析。第一步:生成JSON字符串,具體代碼如下所示。第二步:解析JavaBean、List數(shù)組、嵌套Map的List數(shù)組JSON字符串,具體代碼如下所示。JSON解析之GSON。第一步:生成JSON字符串,具體代碼如下所示。第二步:解析JSON串,具體代碼如下所示。JSON解析之FastJSON,具體代碼如下所示。JSON解析實(shí)現(xiàn)通過如下步驟實(shí)現(xiàn)U酒保的酒精檢測模塊,具體步驟如下所示。第一步:將UJB_01導(dǎo)入工程,在其基礎(chǔ)上進(jìn)一步實(shí)現(xiàn)UJB項(xiàng)目酒精檢測模塊。首先點(diǎn)擊“OpenanexistingAndroidStudioproject”打開磁盤路徑查找所需項(xiàng)目并導(dǎo)入,如圖4.4、圖4.5所示。實(shí)現(xiàn)如圖4.6所示結(jié)果圖。第二步:新建RoundProgressBar.java實(shí)現(xiàn)自定義進(jìn)度條編寫。具體如代碼CORE0404所示。任務(wù)實(shí)施第三步:調(diào)用RoundProgressBar.java顯示進(jìn)度條界面fragment_home.xml。具體如代碼CORE0405所示。效果如圖4.7所示。第四步:創(chuàng)建藍(lán)牙服務(wù)BluetoothCommService.java,開啟藍(lán)牙監(jiān)聽等待連接,顯示連接的狀態(tài)。具體如代碼CORE0406所示。第五步:打開本機(jī)藍(lán)牙功能。具體如代碼CORE0407所示。效果如圖4.8所示。第六步:創(chuàng)建藍(lán)牙進(jìn)行連接所需監(jiān)聽,進(jìn)行藍(lán)牙設(shè)備搜索等。具體如代碼CORE0408所示。第七步:對藍(lán)牙發(fā)送連接請求,實(shí)現(xiàn)藍(lán)牙搜索功能。具體如代碼CORE0409所示。任務(wù)實(shí)施第八步:實(shí)現(xiàn)藍(lán)牙匹配功能。具體如代碼CORE0410所示。第九步:實(shí)現(xiàn)配對后,進(jìn)行藍(lán)牙連接。具體如代碼CORE0411所示。第十步:連接成功后,進(jìn)行酒精檢測。具體如代碼CORE0412所示。第十一步:在進(jìn)度條RoundProgressBar.java中設(shè)計(jì)顯示酒精濃度代碼。具體如代碼CORE0413所示,效果如圖4.9所示。第十二步:運(yùn)行項(xiàng)目,通過酒精檢測儀傳回的數(shù)據(jù),觀察進(jìn)度條所顯示的百分比,判斷酒精濃度。如圖4.2所示。任務(wù)實(shí)施本項(xiàng)目介紹了U酒保酒精檢測模塊的實(shí)現(xiàn),通過本項(xiàng)目的學(xué)習(xí)可以了解藍(lán)牙連接的機(jī)制和復(fù)雜JSON解析的方法,掌握圓形進(jìn)度條的使用方法。實(shí)現(xiàn)藍(lán)牙連接檢測設(shè)備,在界面顯示酒精濃度的功能。任務(wù)總結(jié)Bluetooth藍(lán)牙
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 有機(jī)化學(xué)原料的綠色制備工藝優(yōu)化探索考核試卷
- 單板加工企業(yè)文化建設(shè)與社會責(zé)任考核試卷
- 壽險(xiǎn)產(chǎn)品種類解析考核試卷
- 氨綸纖維的環(huán)保染整技術(shù)考核試卷
- 兒童玩具的用戶體驗(yàn)評估考核試卷
- 海洋測繪與地理信息考核試卷
- 水產(chǎn)罐頭產(chǎn)品營銷渠道的拓展與優(yōu)化考核試卷
- 供應(yīng)合同與采購合同標(biāo)準(zhǔn)文本
- 農(nóng)用機(jī)器購買合同范例
- 共同燒煤取暖合同范例
- 【高中生物】基因工程的基本操作程序課件 2022-2023學(xué)年高二下學(xué)期生物人教版選擇性必修3
- 太平猴魁的制作工藝
- 天策科技50t年高性能瀝青基碳纖維產(chǎn)業(yè)化項(xiàng)目環(huán)境影響報(bào)告書
- 云貴高原和四川盆地
- 2021張桂梅先進(jìn)事跡ppt
- JJF 1169-2007汽車制動操縱力計(jì)校準(zhǔn)規(guī)范
- GB/T 37136-2018電力用戶供配電設(shè)施運(yùn)行維護(hù)規(guī)范
- GB/T 25317-2010絕緣子串元件的槽型連接尺寸
- GB/T 19587-2017氣體吸附BET法測定固態(tài)物質(zhì)比表面積
- 華測使用手冊
- 電氣安全風(fēng)險(xiǎn)辨識清單
評論
0/150
提交評論