基于加速度傳感器的老人跌倒檢測(cè)系統(tǒng)_第1頁(yè)
基于加速度傳感器的老人跌倒檢測(cè)系統(tǒng)_第2頁(yè)
基于加速度傳感器的老人跌倒檢測(cè)系統(tǒng)_第3頁(yè)
基于加速度傳感器的老人跌倒檢測(cè)系統(tǒng)_第4頁(yè)
基于加速度傳感器的老人跌倒檢測(cè)系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、高級(jí)操作系統(tǒng)期末論文題目基于加速度傳感器的老人跌倒檢測(cè)報(bào)警系統(tǒng)基于加速度傳感器的老人跌倒檢測(cè)報(bào)警系統(tǒng)摘要:在社會(huì)逐漸走向老齡化的今天,獨(dú)自生活的老年人的行動(dòng)安全已經(jīng)成為社會(huì)的重要問(wèn)題。以前大多數(shù)的報(bào)警系統(tǒng)多采用按鍵式的報(bào)警方式,實(shí)際上,來(lái)年人摔倒時(shí),常常失去自我意識(shí),所以單純依靠老年人摔倒后主動(dòng)觸發(fā)報(bào)警具備一定的風(fēng)險(xiǎn)。隨著開(kāi)源的Android平臺(tái)移動(dòng)終端操作系統(tǒng)的推出,這一系統(tǒng)具備廣泛的兼容性,為了減少老年人因跌倒造成的身心傷害,利用當(dāng)前android手機(jī)集成的加速度傳感器進(jìn)行人體跌倒的檢測(cè),當(dāng)檢測(cè)到人體發(fā)生跌倒時(shí)對(duì)老人當(dāng)前的位置進(jìn)行定位并調(diào)用SMS將摔倒的信息和位置信息發(fā)送到預(yù)先設(shè)置的緊急聯(lián)

2、系人手機(jī),可以提高老年人摔倒報(bào)警的準(zhǔn)確性。關(guān)鍵詞:加速度傳感器;跌到檢測(cè);定位;SMSAbstract:Today,graduallyagingsociety,theelderlylivingalonesafetyhasbecomeanimportantproblemofsocialaction.Beforemostofthealarmsystemusetouch-tonephonesmorealarmway,infact,whenpeoplefallnextyear,oftenloseconsciousness,sorelyoninitiativetotriggerthealarmafter

3、theelderlyfallhaveacertainrisk.Asopen-sourceAndroidplatformofmobileterminaloperatingsystem,theintroductionofthesystemhaveawiderangeofcompatibility,inordertoreducethephysicalandmentaldamagecausedbythefallintheelderly,usingthecurrentAndroidintegrationaccelerationsensorfallsforhumandetection,whenthedet

4、ectedhumanbodyfalloccursonthecurrentpositionoftheoldmantolocateandinvoketheSMSwillfallinformationandlocationinformationsenttothepresetemergencycontactphone,canimprovetheaccuracyoftheelderlyfallalarm.Keywords:accelerationsensor;detect;location;SMS1前言1.1 研究背景及意義隨著我國(guó)人口老齡化的趨勢(shì),如何照看老年人成為社會(huì)各界關(guān)注的問(wèn)題。再加上現(xiàn)在“空巢

5、老人”的現(xiàn)象已經(jīng)成為人口老齡化的一種社會(huì)問(wèn)題,引起了社會(huì)各界的高度關(guān)注。跌倒對(duì)于老年人來(lái)說(shuō)是一項(xiàng)重大的威脅,如何準(zhǔn)確檢測(cè)出跌倒并及時(shí)發(fā)出報(bào)警求助信息,使老年人跌倒傷害降到最低,是人體健康監(jiān)護(hù)領(lǐng)域中非常具有研究?jī)r(jià)值的問(wèn)題。因此,開(kāi)發(fā)具有便攜性、高精度性、實(shí)時(shí)性以及自動(dòng)報(bào)警功能的無(wú)線跌倒檢測(cè)系統(tǒng),在人體發(fā)生跌倒行為時(shí),第一時(shí)間檢測(cè)出并發(fā)出警報(bào)信息進(jìn)行求助,是整個(gè)社會(huì)的需要。傳統(tǒng)的跌倒檢測(cè)技術(shù)在設(shè)備、場(chǎng)景等方面具有較大的局限性,隨著人工智能、無(wú)線通信、微電子技術(shù)以及生理信號(hào)檢測(cè)與處理等技術(shù)的發(fā)展,使得人體運(yùn)動(dòng)狀態(tài)信息的檢測(cè)獲得幫助。伴隨著科技的進(jìn)步,移動(dòng)終端已經(jīng)成為了每一個(gè)現(xiàn)代人生活中所必不可少的基

6、本用品?,F(xiàn)階段無(wú)線寬帶網(wǎng)絡(luò)的迅猛發(fā)展也悄然地改變著人們的生活方式。目前的網(wǎng)絡(luò)已經(jīng)可以很好地滿足用戶對(duì)于高速移動(dòng)數(shù)據(jù)的需求,從而促使手持設(shè)備向智能化、多媒體化發(fā)展。另外Android的系統(tǒng)架構(gòu)及開(kāi)發(fā)原理使它成為當(dāng)前手持設(shè)備中具有可移植的操作系統(tǒng)。當(dāng)然,更為重要的是Android的開(kāi)源性降低了其開(kāi)發(fā)成本,Android使用Java作為程序開(kāi)發(fā)的語(yǔ)言,為用戶所提供大量的程序組件,用戶可以直接在這些組件基礎(chǔ)上構(gòu)建自己的開(kāi)發(fā)程序?,F(xiàn)在的移動(dòng)終端中也集成了多種傳感設(shè)備,通過(guò)對(duì)外界變化的及時(shí)獲取,計(jì)算出加速度、地理位置、身體情況等所需的信息。本文利用加速度傳感器,開(kāi)發(fā)出基于Android的App,對(duì)老年人的

7、活動(dòng)信息進(jìn)行檢測(cè),在檢測(cè)到異常情況時(shí)做出報(bào)警處理,使得老年人能夠得到及時(shí)有效的救助,避免嚴(yán)重后果的發(fā)生。1.2 國(guó)內(nèi)外的研究現(xiàn)狀跌倒檢測(cè)系統(tǒng)是一種個(gè)人遠(yuǎn)程監(jiān)護(hù)系統(tǒng),保護(hù)了老年人群的健康與安全,它可以有效檢測(cè)老年人是否發(fā)生跌倒并及時(shí)報(bào)警。所以,跌倒檢測(cè)技術(shù)愈發(fā)受到社會(huì)各界的重視。從現(xiàn)今國(guó)內(nèi)外的研究成果來(lái)看,關(guān)于老年人摔倒時(shí)進(jìn)行報(bào)警的方法種類繁多,根據(jù)各項(xiàng)產(chǎn)品在研發(fā)和使用中得到的摔倒信息的形式和來(lái)源不同,主要的方法可以分為以下幾類:1 .老年人自主啟動(dòng)的摔倒報(bào)警系統(tǒng)設(shè)備要求老年人摔倒時(shí)自主報(bào)警,所以使用者必須具備一定程度的自救能力和自主活動(dòng)能力,并且只有在該用戶摔倒時(shí),保持清醒才能保證報(bào)警功能的順

8、利實(shí)施。所以這也存在著很大的安全隱患:如果使用者由于摔倒對(duì)身體機(jī)能造成損傷,失去了自我啟動(dòng)設(shè)備的行動(dòng)能力,無(wú)法及時(shí)按下報(bào)警按鈕,這種設(shè)備就將失去它的報(bào)警功能。2 .利用視頻圖像信息檢測(cè)的摔倒報(bào)警系統(tǒng)在使用時(shí),可以設(shè)置在老年人易發(fā)生摔倒的地方,這種報(bào)警方式主要是利用視頻圖像檢測(cè)設(shè)備實(shí)時(shí)捕捉老年人的活動(dòng),當(dāng)老年人在圖像信息中出現(xiàn)非正常情況下的身體移動(dòng)或位置姿態(tài)變化時(shí),檢測(cè)摔倒行為的發(fā)生,實(shí)現(xiàn)自動(dòng)報(bào)警。它有利于老年人的身體自由活動(dòng),但是使用具有空間上的局限性。并且這種摔倒報(bào)警系統(tǒng)的使用,還有可能侵犯老年人的隱私。本文采用基于Android的App,只需要在老人的手機(jī)上安裝上軟件進(jìn)行相應(yīng)簡(jiǎn)單的設(shè)置,就

9、可以實(shí)現(xiàn)檢測(cè)和報(bào)警2軟件設(shè)計(jì)及分析2.1 總體設(shè)計(jì)基于Android平臺(tái)開(kāi)發(fā)的老人跌倒檢測(cè)報(bào)警系統(tǒng)主要用來(lái)對(duì)人體跌倒進(jìn)行識(shí)別和報(bào)警,主要功能包括,通過(guò)獲取到的加速度值和角速度值進(jìn)行判別跌倒是否發(fā)生并用折線圖對(duì)加速度變化的實(shí)時(shí)信息進(jìn)行動(dòng)態(tài)顯示,使用百度地圖定位功能獲取到老人跌倒時(shí)所處的位置,用戶需要進(jìn)行緊急聯(lián)系人設(shè)置以便檢測(cè)到跌倒發(fā)生時(shí)系統(tǒng)進(jìn)行自動(dòng)報(bào)警,檢測(cè)到跌倒時(shí)將用戶位置和摔倒的信息以短信發(fā)送到緊急聯(lián)系人手機(jī)上。該系統(tǒng)中跌倒的識(shí)別是一個(gè)難點(diǎn),只進(jìn)行加速度和角速度閾值設(shè)定的方式來(lái)判斷摔倒是否發(fā)生測(cè)試結(jié)果會(huì)有一定的誤差,要使測(cè)試結(jié)果更精確則需要使用識(shí)別數(shù)據(jù)庫(kù)。即將人體運(yùn)動(dòng)時(shí)可能發(fā)生的各種情況如正

10、常行走、跑步、跌倒等的相關(guān)數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,判別跌倒是否發(fā)生時(shí)只需要和數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行對(duì)比即可。2.2 設(shè)計(jì)環(huán)境開(kāi)發(fā)軟件:Eclipse開(kāi)發(fā)語(yǔ)言:Java+SQLite運(yùn)行環(huán)境:Android4.1.0及以上2.2.1 加速度傳感器簡(jiǎn)介加速度傳感器是一種能夠測(cè)量加速力的電子設(shè)備。通過(guò)測(cè)量由于重力引起的加速度,你可以計(jì)算出設(shè)備相對(duì)于水平面的傾斜角度。通過(guò)分析動(dòng)態(tài)加速度,你可以分析出設(shè)備移動(dòng)的方式。加速度傳感器是一種能夠測(cè)量加速力的電子設(shè)備。因此其的范圍比重力感應(yīng)器要大,但是一般在手機(jī)被提到的加速度感應(yīng)器時(shí),其實(shí)就是指重力感應(yīng)器,因此兩者可以看作是等價(jià)的。加速度傳感器應(yīng)用于地震檢波器設(shè)計(jì)、車(chē)禍

11、報(bào)警、監(jiān)測(cè)高壓導(dǎo)線舞動(dòng)、汽車(chē)安全、游戲控制、圖像自動(dòng)翻轉(zhuǎn)、電子指南針傾斜校正、GPS導(dǎo)航系統(tǒng)死角的補(bǔ)償、計(jì)步器功能、防手抖功能、設(shè)備或終端姿態(tài)檢測(cè)等眾多領(lǐng)域。2.2.2 跌到檢測(cè)簡(jiǎn)介跌倒檢測(cè)系統(tǒng),具包括:一個(gè)或多個(gè)傳感器,所述傳感器用于監(jiān)測(cè)跌倒檢測(cè)系統(tǒng)的用戶的運(yùn)動(dòng)以及用于生成相應(yīng)的信號(hào);用于根據(jù)用戶身體狀況的一個(gè)或多個(gè)測(cè)量結(jié)果確定閾值的模塊;處理器,所述處理器用于分析信號(hào)以識(shí)別用戶的跌倒、分析信號(hào)以識(shí)別跌倒。一般情況下,人體跌倒行為通常發(fā)生在2秒左右。跌倒過(guò)程中身體重心的瞬間移動(dòng)會(huì)產(chǎn)生一個(gè)加速度,身體的傾倒也會(huì)產(chǎn)生一個(gè)偏離豎直方向的角度。在非跌倒?fàn)顟B(tài)如行走過(guò)程中,人體上軀干偏離Z軸的傾斜角處于

12、一個(gè)相對(duì)安全的范圍內(nèi),而跌倒后人體多處于俯臥、側(cè)臥或仰臥的狀態(tài),軀干方向接近于水平,即偏離豎直方向的傾斜角接近90度。因此我們選取加速度和身體的傾斜角這兩個(gè)特征作為判別跌倒與其它日?;顒?dòng)的依據(jù)。.2.2.3定位簡(jiǎn)介現(xiàn)在人們能實(shí)現(xiàn)的定位的方式很多百度地圖就是其中一個(gè),百度提供的一項(xiàng)網(wǎng)絡(luò)地圖搜索服務(wù),覆蓋了國(guó)內(nèi)近400個(gè)城市、數(shù)千個(gè)區(qū)縣。在百度地圖里,用戶可以查詢街道、商場(chǎng)、樓盤(pán)的地理位置,也可以找到離您最近的所有餐館、學(xué)校、銀行、公園等等。利用百度地圖定位功能實(shí)時(shí)的知道用戶所處的位置,要想到達(dá)目的地可以選擇的路線信息等。2.2.4 SMS短信服務(wù)是一種存儲(chǔ)和轉(zhuǎn)發(fā)服務(wù)。也就是說(shuō),短消息并不是直接從

13、發(fā)送人發(fā)送到接收人,而始終通過(guò)短信服務(wù)中心進(jìn)行轉(zhuǎn)發(fā)。如果接收人處于未連接狀態(tài)(可能電話已關(guān)閉),則消息將在接收人再次連接時(shí)發(fā)送。SMS具有許多其他的重要功能。它既是一個(gè)龐大的直接面對(duì)用戶的服務(wù)部門(mén),需要位于不同工作點(diǎn)的許多工作人員通過(guò)客戶端同時(shí)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作3系統(tǒng)需求分析與概要設(shè)計(jì)3.1 需求分析本系統(tǒng)是一個(gè)基于安卓系統(tǒng)的人體跌倒檢測(cè)報(bào)警系統(tǒng)軟件,通過(guò)使用此軟件能夠快捷的識(shí)別出人體是否跌倒,利用百度地圖對(duì)人所處的位置進(jìn)行定位,并使用SMS等位置和摔倒的信息發(fā)送到家人的手機(jī)上,本系統(tǒng)包括的功能有緊急聯(lián)系人信息添加,百度地圖定位,跌倒識(shí)別的信息用折線圖顯示,短信的發(fā)送。3.2 系統(tǒng)概要設(shè)計(jì)3.2

14、.1 系統(tǒng)功能模塊介紹(1)添加緊急聯(lián)系人信息模塊:用戶點(diǎn)擊聯(lián)系人按鈕后可以通過(guò)點(diǎn)擊添加按鈕進(jìn)入緊急聯(lián)系人信息頁(yè)面進(jìn)行信息的添加也可以點(diǎn)擊通訊錄從手機(jī)通訊錄中選擇添加。該模塊中包含了兩個(gè)子模塊自主添加聯(lián)系人模塊和從通訊錄選擇添加聯(lián)系人模塊,模塊界面如下圖所示:jesim#申ia.Rt主PI樣田識(shí)比聯(lián)系人圖3.2緊急聯(lián)系人信息模塊界面圖3.1系統(tǒng)主界面(2)百度地圖定位模塊:當(dāng)老人跌倒需要家人的幫助時(shí)就需要能知道老人當(dāng)時(shí)所在的位置,所以利用百度地圖里的定位功能實(shí)現(xiàn)實(shí)時(shí)定位。模塊界面如下:圖3.3百度地圖模塊界面(3)跌倒識(shí)別模塊:現(xiàn)在的android手機(jī)中都已集成了加速度傳感器,所以利用加速度傳

15、感器的和速度是否超過(guò)設(shè)定的閾值判定人體是否摔倒,并將信息用折線圖顯示。該模塊中包含了加速度顯示和折線圖顯示加速度值兩個(gè)子模塊,界面如下圖所示:l擇用識(shí)別界面速厘值曲鹿國(guó)圖3.4跌倒識(shí)別模塊界面(4)發(fā)送短信模塊:當(dāng)檢測(cè)到用戶摔倒時(shí)將用戶的當(dāng)前的所在位置和摔倒的信息發(fā)送到指定的緊急聯(lián)系人的手機(jī)上。模塊的界面如下圖所示:JE3CM中他第T*SJM目1:M口中夜送場(chǎng)信.主51建位發(fā)送短信假系人事軸人手粗號(hào)圖3.5發(fā)送短息模塊界面3.2.2 功能模塊結(jié)構(gòu)圖圖3.6功能模塊結(jié)構(gòu)圖3.2.3系統(tǒng)流程圖開(kāi)始聯(lián)系人設(shè)置折線圖顯示A獲取加速度發(fā)送短信圖3.7系統(tǒng)流程圖4系統(tǒng)詳細(xì)設(shè)計(jì)4.1 聯(lián)系人設(shè)置模塊4.1.

16、1 代碼設(shè)計(jì)緊急聯(lián)系人設(shè)置的xml布局由兩個(gè)Button和一個(gè)Textview組成,兩個(gè)Button分別表示通過(guò)系統(tǒng)自己的添加界面添加緊急聯(lián)系人和調(diào)用手機(jī)通訊錄選擇添加緊急聯(lián)系人,Textview用來(lái)顯示添加的緊急聯(lián)系人信息(包括姓名,電話,地址)模塊部分代碼如下:protectedvoidonCreate(BundlesavedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.activity_contact_info);show=(TextView)findViewById(R.id.show)

17、;Intenti=getIntent();/*實(shí)現(xiàn)緊急聯(lián)系人的添加*/findViewById(R.id.add).setOnClickListener(newOnClickListener()/調(diào)用添加聯(lián)系人信息”頁(yè)面OverridepublicvoidonClick(Viewv)IntentjIntent=newIntent(ContactInfoActivity.this,AddContactActivity.class);/jIntent.putExtra(familyInfo,newfamilyInfo(,);startActivityForResult(jIntent,0););/

18、* 實(shí)現(xiàn)通訊錄中選取聯(lián)系人* */findViewById(R.id.book).setOnClickListener(newOnClickListener()OverridepublicvoidonClick(Viewv)IntentbIntent=newIntent(ContactInfoActivity.this,PhoneActivity.class);startActivityForResult(bIntent,0););/處理接收的數(shù)據(jù)OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,Intentd

19、ata)super.onActivityResult(requestCode,resultCode,data);/接收數(shù)據(jù):采用Bundle傳值Bundlebundle=data.getExtras();Stringname=bundle.getString(name);Stringtelphone=bundle.getString(telphone);Stringaddress=bundle.getString(address);show.setText(聯(lián)系人彳t息:+n姓名:+name+n電t:+telphone+n地址:+address);show.setTextSize(20);4.

20、1,2界面設(shè)計(jì)聯(lián)系人設(shè)置模塊界面如圖4.1,1所示。圖4.1緊急聯(lián)系人信息界面圖4.2自主添加聯(lián)系人模塊4.2.1 代碼設(shè)計(jì)自主添加聯(lián)系人activity_add_contact.xml布局主要由三個(gè)TextView來(lái)分別顯示用戶需要添加的姓名、電話和地址信息、三個(gè)EditText分別由用戶輸入對(duì)應(yīng)的信息、兩個(gè)Button用來(lái)實(shí)現(xiàn)用戶輸入信息的存儲(chǔ)并返回到另一個(gè)Activity將信息顯示出來(lái),取消按鈕用來(lái)取消本次添加操作。模塊的部分代碼如下:protectedvoidonCreate(BundlesavedInstanceState)super.onCreate(savedInstanceSt

21、ate);setContentView(R.layout.activity_add_contact);/接收數(shù)據(jù)IntentjIntent=getIntent();/實(shí)現(xiàn)name=(EditText)findViewById(R.id.telphone=(EditText)findViewById(R.id.address=(EditText)findViewById(R.id.返回聯(lián)系人信息頁(yè)聯(lián)系人信息頁(yè)editText1);editText2editText3”到添加聯(lián)系人信息”頁(yè)););findViewById(R.id.confirm).setOnClickListener(newOn

22、ClickListener()OverridepublicvoidonClick(Viewv)Bundlebundle=newBundle();bundle.putString(name,name.getText().toString();bundle.putString(telphonebundle.putString(telphone,.getText().toString();address,address.getText().toString();Intentintent=newIntent(AddContactActivity.thisContactInfoActivity.clas

23、s);intent.putExtras(bundle);setResult(1,intent);finish(););4.2.2 界面設(shè)計(jì)自主添加聯(lián)系人模塊界面如圖,)|二,。口況*T7前潮加緊急聯(lián)系人信息蚱料電演11址JI磷定取消4.2.1和圖4.2.2所示圖4.3取消按鈕信息提示界面圖4.2添加聯(lián)系人界面4.3通訊錄獲取聯(lián)系人模塊4.3.1 代碼設(shè)計(jì)通訊錄獲取聯(lián)系人activity_phone.xml布局由ListView來(lái)顯示從用戶手機(jī)通訊錄中讀取出來(lái)的聯(lián)系人信息二模塊部分代碼如下:publicclassGetNumberpublicstaticListlists=newArrayLis

24、t();publicstaticStringgetNumber(Contextcontext)Cursorcursor=context.getContentResolver().query(Phone.CONTENT_UR,null,null,null,null);StringphoneNumber;StringphoneName;while(cursor.moveToNext()phoneNumber=cursor.getString(cursor.getColumnIndex(Phone.NUMBER;/電話號(hào)碼phoneName=cursor.getString(cursor.getCo

25、lumnIndex(Phone.DISPLAY_NAM。);/姓名PhoneInfoinfo=newPhoneInfo(phoneName,phoneNumber);lists.add(info);System.out.println(phoneName);System.out.println(phoneNumber);returnnull;4.3.2 界面設(shè)計(jì)通訊錄獲取聯(lián)系人模塊界面如圖4.3.1所示.dll10.Q2Q+86155598.rt劉,+86159307Eo郭+861820770Q皴JL+861862380趙,L13278731135265*C楊Ba13腔947rt五136297

26、2圖4.4通訊錄選擇聯(lián)系人信息界面4.4.1代碼設(shè)計(jì)百度地圖定位activ1y_locationss.xml布局由一個(gè)Button來(lái)驅(qū)動(dòng)用戶調(diào)用百度地圖API實(shí)現(xiàn)百度地圖的定位,在實(shí)現(xiàn)百度地圖定位時(shí)需要根據(jù)所建項(xiàng)目的包和Eclipse中的SHA1fingerprint信息來(lái)申請(qǐng)對(duì)應(yīng)的APIkey并在配置文件中配置響應(yīng)信息,還需要導(dǎo)入baidumapapi的包。模塊的部分代碼如下:publicclassMyLocationListennerimplementsBDLocationListenerOverridepublicvoidonReceiveLocation(BDLocationlocat

27、ion)/mapview銷(xiāo)毀后不在處理新接收的位置if(location=null|mMapView=null)return;MyLocationDatalocData=newMyLocationData.Builder().accuracy(location.getRadius()/此處設(shè)置開(kāi)發(fā)者獲取到的方向信息,順時(shí)針0-360.direction(100).latitude(.longitude(locationmBaiduMap.setMyLocationData(if(isFirstLoc)isFirstLoc=false;LatLngll=newLatLng(location.ge

28、tLatitude().getLongitude().build();locData);location.getLatitude(),location.getLongitude();MapStatusUpdateu=MapStatusUpdateFactory.newLatLng(ll);mBaiduMap.animateMapStatus(u);Stringaddr=location.getAddrStr();if(addr!=null)Log.i(Test,addr);elseLog.i(Test,error);doublelongitude=location.getLongitude()

29、;doublelatitude=location.getLatitude();if(longitude0&latitude0)Log.i(Test,String.format(緯度:f經(jīng)度:flatitude,longitude);LatLngptCenter=newLatLng(latitude,longitude);/反Geo搜索mSearch.reverseGeoCode(newReverseGeoCodeOption().location(ptCenter);停止定位mLocClient.stop();poiLocation)publicvoidonReceivePoi(BDLocat

30、ion)4.4,2界面設(shè)計(jì)百度地圖定位模塊界面如圖4.4,1所示圖4.5百度地圖定位信息界面4.5 加速度信息顯示模塊4.5.1 代碼設(shè)計(jì)加速度信息顯示activity_sensor.xml布局由一個(gè)TextView顯示通過(guò)手機(jī)中的加速度傳感器獲取到的人體運(yùn)務(wù)加速度的數(shù)據(jù),此處需要計(jì)算加速度的合速度并設(shè)定相應(yīng)的閾值,若獲取的合速度a超過(guò)了閾值則表示人摔倒否則屬于正常情況。模塊部分代碼如下:/*功能:采集加速度傳感器,得到傳感器從外界采集的數(shù)據(jù)*/OverrideprotectedvoidonCreate(BundlesavedInstanceState)super.onCreate(saved

31、InstanceState);setContentView(R.layout.activity_sensor);showTextView=(TextView)findViewById(R.id.showTextView);sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE;accelerometerSensor=sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETE)RsensorManager.registerListener(this,acceler

32、ometerSensor,SensorManager.SENSOR_DELAY_GAME)/坐標(biāo)軸都是手機(jī)從左側(cè)到右側(cè)的水平方向?yàn)閤軸正向,從手機(jī)下部到上部為y軸正向,垂直于手機(jī)屏幕向上為z軸正向OverridepublicvoidonSensorChanged(SensorEventevent)if(event.sensor.getType()=Sensor.TYPE_ACCELEROMETE)R/x,y,z分別存儲(chǔ)坐標(biāo)軸x,y,z上的加速度f(wàn)loatx=event.values0;floaty=event.values1;floatz=event.values2;/根據(jù)三個(gè)方向上的加速度值

33、得到總的加速度值afloata=(float)Math.sqrt(x*x+y*y+z*z);System.out.println(和加速度a+a);/傳感器從外界采集數(shù)據(jù)的時(shí)間間隔為10000微秒System.out.println(x軸加速度x+x);System.out.println(y軸加速度+y);System.out.println(z軸加速度+z);Log.d(TAG,x+x);Log.d(TAG,y+y);Log.d(TAG,z+z);showTextView.setText(t+合速度a+a+nX軸加速度+x+nY軸加速度+y+nZ軸加速度+z)/將當(dāng)前時(shí)間賦值給timest

34、amptimestamp=event.timestamp;4.5.2 界面設(shè)計(jì)加速度信息顯示模塊界面如圖4.5.1所示。1-;fi加速魔信閂自逑宴39.094351父幢加速度-0.715丫儲(chǔ)加源度尊工驚加透度文?06圖4.6人體運(yùn)動(dòng)加速度信息顯示界面4.6 折線圖顯示合速度信息模塊4.6.1 代碼設(shè)計(jì)折線圖顯示合速度activity_chart.xml布局由一個(gè)TextView一個(gè)LinearLayout和一個(gè)Button組成,TextView反映折線圖的內(nèi)容,LinearLayout用來(lái)顯示折線圖,Button用來(lái)返回上一級(jí)的Activity頁(yè)面。代碼如圖所示:Overrideprotect

35、edvoidonCreate(BundlesavedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.LinearLayoutlayout=(LinearLayout)findViewById(R.id./生成圖表chart=ChartFactory.getDemoRenderer(),HH:mm:ssactivity_chartlinearlayoutgetTimeChartView);layout.addView(chart,newLayoutParams(LayoutParams.WRAP_C

36、ONTEN370);/););(this,getDateDemoDataset(),/為T(mén)extView添加事件textview=(TextView)findViewById(R.id.myview);textview.setOnClickListener(newView.OnClickListenerButtonbutton=(Button)this.findViewById(R.id.button);button.setOnClickListener(newView.OnClickListener()OverridepublicvoidonClick(Viewv)Toast.makeTex

37、t(ChartActivity.this,加速度,1).show();IntentintentnewIntent();intent.setClass(ChartActivity.this,MainActivity.class);startActivity(intent););handler=newHandler()OverridepublicvoidhandleMessage(Messagemsg)/刷新圖表updateChart();super.handleMessage(msg);task=newTimerTask()Overridepublicvoidrun()Messagemessag

38、e=newMessage();message.what=200;handler.sendMessage(message););timer.schedule(task,2*1000,1000);)4.6.2 界面設(shè)計(jì)折線圖顯示合速度信息模塊界面如圖4.6.1所示圖4.7折線圖顯示人體運(yùn)動(dòng)加速度信息界面4.7 發(fā)送短信模塊4.7.1 代碼設(shè)計(jì)短信發(fā)送activity_sms.xml布局由兩個(gè)TextView和兩個(gè)EditView和一個(gè)Button組成,TextView用來(lái)作為用戶發(fā)送短信時(shí)輸入信息的提示,EditView用來(lái)給用戶進(jìn)行信息編輯,Button實(shí)現(xiàn)短信發(fā)送的操作。模塊部分代碼如下:pr

39、otectedvoidonCreate(BundlesavedInstanceStatesuper.onCreate(savedInstanceState);setContentView(R.layout.phone_number_editText(EditText)findViewById(R.id.sms_content_editTextactivity_sms);phone_number_editText=(EditText)findViewById(R.id.sms_content_editText);send_sms_button=(Button)findViewById(R.id.

40、);send_sms_button);publicStringphone_number_editTextStringnewOnClickListener()send_sms_button.setOnClickListener(OverridevoidonClick(Viewarg0)phone_number=.getText().toString().trim();sms_content=15sms_content_editText.getText().toString().trim();if(phone_number.equals()Toast.makeText(SMSActivity.th

41、is,R.string.str_remind_input_phone_number,Toast.LENGTH_LONGshow();elseSmsManagersmsManager=SmsManager.getDefault();if(sms_content.length()70)Listcontents=smsManager.divideMessage(sms_content);for(Stringsms:contents)smsManager.sendTextMessage(phone_number,null,sms,null,null);elsesmsManager.sendTextMe

42、ssage(phone_number,null,sms_content,null,null);Toast.makeText(SMSActivity.this,R.string.str_remind_sms_send_finish,Toast.LENGTH_SHORTshow(););4.7.2 界面設(shè)計(jì)短信發(fā)送模塊界面如圖4.7.1所示圖4.8短信發(fā)送界面4.8 系統(tǒng)開(kāi)發(fā)過(guò)程故障排除在整個(gè)系統(tǒng)開(kāi)發(fā)的過(guò)程中,總會(huì)遇到各種各樣的問(wèn)題,現(xiàn)將部分問(wèn)題及解決辦法總結(jié)如下:(1)在ActMty中,獲取被啟動(dòng)的Activity傳回的信息時(shí)報(bào)空指針的錯(cuò)誤,原因是布局文件中有些控件未被綁定組件,所以獲取的值是空

43、的。(2) 在利用百度地圖進(jìn)行定位時(shí)報(bào)錯(cuò):Unabletoexecutedex:Multipledexfilesdefine,原因是重復(fù)定義support.v4的支持包,解決辦法:刪掉一個(gè)即可。(3) 在運(yùn)行程序時(shí)報(bào)錯(cuò):Pleasechecklogcatoutputformoredetails。原因是測(cè)試的手機(jī)內(nèi)存不足,解決辦法:刪除手機(jī)上的其他應(yīng)用。(4)點(diǎn)擊按鈕時(shí)程序不響應(yīng),但程序不報(bào)錯(cuò)誤。原因是:在頁(yè)面布局中,圖片和按鈕的命名相同時(shí)。(5)在系統(tǒng)中需要使用折線圖顯示獲取到的加速度值得變化信息,出現(xiàn)錯(cuò)誤:java.lang.NoClassDefFoundError:org.achartengine.model.XYMultipleSeriesDataset,原因:依賴的Jar包沒(méi)有

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論