




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第四章 程序實現4.2 程序界面設計圖4-1 程序界面程序界面采用藍白灰搭配的簡潔配色和扁平化的視覺設計,減少用戶的認知成本。在APP Inventor中采用Screen Arrangement控件對屏幕進行分割與排版來保持界面美觀。圖4-2 界面布局程序一共有3屏,分別是Screen1搖一搖定位界面、Screen2定位信息和Screen3數據記錄。每個Screen之間可以跳轉返回。4.3 程序架構設計Screen1搖一搖定位界面,當用戶晃動手機觸發定位功能。當手機定位成功獲取到經緯高度數據時,便將數據傳到Screen2。當定位失敗,沒有獲取到數據,Screen1就會觸發一個計時器,每0.5秒
2、重新獲取一次經緯高度,此時界面顯示正在定位。直至獲取到信息后才會打開Screen2,否則一直停留在Screen1。Screen2定位信息界面。Screen2接受到Screen1傳來的經緯高度信息后通過WebPost向API發送請求,WebGet獲取API返回的數據進行處理從而將結果顯示到Screen2。用戶錄入設備信息后按保存按鈕,Screen2將通過WebPost向數據庫上傳數據。圖4-3 程序界面流程圖Screen3數據記錄。數據記錄可對數據庫的數據進行瀏覽、刪除、發送的操作。4.4 搖一搖功能當用戶晃動手機,重力傳感器AccelerometerSensor觸發震動效果并激活GPS定位功能
3、。4.5 GPS定位功能GPS定位功能是調用了LocationSensor部件獲取經緯高度信息。手機晃動,計時器Clock2生效。Clock2生效時每0.5秒觸發一次。當獲取的Latitiude不等于0時,也就是成功獲取經緯高度信息時,Clock2失效,同時將數據傳到Screen2并打開Screen2。圖4-4 搖一搖定位功能編程 GPS定位成功的判斷過程在Screen1完成。4.6 API調用利用APP Inventop里的Web組件對API進行調用,利用Web.get來獲取返回的數據程序。一共調用了3個API。第一個是轉換坐標的API:將經緯度發送過去獲得轉換后的百度坐標系的經緯高度。第二
4、個是獲取靜態地圖的API:將轉換后的經緯高度發送過去獲得對應經緯高度的靜態地圖。第三個是獲取街道名稱的API:將轉換后的經緯高度發送過去獲得對應街道地址。圖4-5 Json解碼編程第一個和第三個API的返回值是包含結果的JSON值,需要將結果提取出來。Web1即第一個API的JSON提取如圖。4.7 信息錄入功能利用ListPicket組件,可讓對設備類型進行選擇,texebox組件可獲得用戶輸入的設備信息。右圖是將用戶選擇的設備類型的值+用戶輸入的設備信息的值設為tag的值。將經緯高度信息的值設為val值。圖4-6 信息錄入功能編碼4.8 新浪SAE數據庫的搭建程序中所使用的網絡數據庫是新浪
5、SAE的MySQL數據庫。首先在新浪SAE注冊一個開發者賬號,注冊完畢就就能使用MySQL服務。數據庫的PHP代碼如下runSql ( $sql );echo 1;break;case 2 :$result = mysql_query ( SELECT * FROM test1 where tag= . $tag . ); / 下載數據while ( $row = mysql_fetch_array ( $result ) ) echo $row value . ,;break;case 3 :$sql = SELECT * FROM test1; / 獲取所有val$result = mys
6、ql_query ( $sql );while ( $row = mysql_fetch_array ( $result ) ) echo $row value . ,;break;case 4 :$sql = delete from test1 where tag = . $tag . ;/ 獲取所有tag$mysql-runSql ( $sql );echo 1; / 刪除指定tag的數據break;case 5 :$sql = update test1 set value = . $value . where tag = . $tag . ;$mysql-runSql ( $sql );
7、echo 1; / 更換數據break;default :echo 0;$mysql-closeDb ();?數據庫的訪問連接為通過修改ord=1,2,3,4,5的值來實現不同的功能。1為上傳數據,2為獲取所有tag,3為獲取所有val,4為刪除指定tag的數據,5為替換指定tag的數據。4.9 數據操作功能圖4-7 數據上傳功能編程4.9.1 數據上傳功能利用web組件訪問網址,利用Web.Post將tag和val的值上傳到數據庫4.9.2 數據刪除功能同理,利用web組件訪問網址,利用Web.Post將tag的值上傳到數據庫就能刪除對應的val和tag。4.9.3 數據發送功能利用Acti
8、vityStarter1組件,呼叫的action為 ent.action.SEND,ExtraKey為ent.extra.TEXT即可呼出類似分享按鈕的功能。通過這個Acivity,可將經緯高度信息通過短信、微信、郵件、QQ等以分享方式發送出去。4.9.4數據列表獲取利用web組件訪問圖4-8 數據記錄界面和獲取所有的tag和val值,并將它們逐個顯示到label中。當中利用tag數組的長度來確定列表的長度。第五章 程序調試與測試第五章 程序調試與測試在開發過程中,遇到兩個難題導致程序一直報錯,最后經過調試后終于得以解決。5.1 Screen2定位信
9、息報錯Screen2定位信息報錯的原因由于當初沒有在Screen1設置判斷經緯高度的數值。若果定位失敗,經緯高度的值為0.0,0.0,0.0。當Screen2將這串數值發送到API后,返回的結果跟正常結果不同,使原本Screen2中的Json解析函數不能解析,發生錯誤導致程序報錯。解決辦法:在Screen1中設置定位是否成功的判斷,如圖4-所示,當LocaticonSensor1.Latitude不等于0,也就是定位成功后才執行后邊的語句,否則就重復獲取經緯高度直至LocaticonSensor1.Latitude不等于0。圖5-1 程序報錯信息5.2 Screen3數據記錄報錯Screen3
10、數據記錄報錯的原因是原來列表項數的判斷位于tag數組的語句中, val數組語句中并沒有根據數據長度來決定列表項數。當網速受影響,val數組獲取快于tag數組,由于沒有判讀列表項數,空列表會執行讀取語句導致讀取到空的數組導致程序報錯。解決辦法:添加val數組中列表項數的判斷。圖5-2 添加的代碼5.3 錄入信息設置限制字符圖5-4 限制字符提示圖5-3 限制字符編程數據庫中返回的tag值是由“,”來隔開每一個值。所以如果tag數組中(即設備類型+設備信息)含有“,”將影響Screen3中數據列表的解析,從而導致列表結果顯示出錯。所以在輸入設備信息中加入限制的字符,當輸入的設備信息含有該字符時,程序會出現相應提示。5.4 程序測試本次以學校輸電線路爬桿實訓基地
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025中考英語書面表達之建議信專項復習課件
- 電動汽車設計與制造-課件 第9章 轉向系統設計
- 預測分析與數據科學的邊界探索
- 風能產業的發展對醫療科技推動的研究
- 風電葉片材料性能教育-專業人員的必修課
- 青年文明實踐構建和諧社會的新力量
- 非遺文化教育在主題婚禮策劃中的重要性
- 非遺傳承審計文化資源的有效利用與管理策略研究
- 非遺傳承的數字創新之路-數字化技術及其策略探討
- 零售業中的品牌建設與市場拓展
- GB/T 20854-2025金屬和合金的腐蝕循環暴露在鹽霧、“干”和“濕”條件下的加速試驗
- 油田數字化運維理論考試題庫-上(單選題)
- 護理教育程序
- 麻風病知識講座課件
- 氨區作業安全培訓課件
- 2025內蒙古中考:生物必背知識點
- 2025年湖北省新高考信息卷(一)化學試題及答案
- 巖土工程設計課件
- 校醫招聘考試試題及答案
- 新能源安規試題及答案
- 2O25中國商業航天創新生態報告
評論
0/150
提交評論