国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android 的老年人輔助APP 研發(fā)

2016-06-17 19:32:35葉旺旺湯瓊葛燦飛
電腦知識(shí)與技術(shù) 2016年11期
關(guān)鍵詞:智能機(jī)

葉旺旺++湯瓊++葛燦飛

摘要:隨著智能機(jī)的普及,各種各樣App的觸角伸向了人民生活的方方面面,為老年人居家生活提供智能輔助的應(yīng)用也越來(lái)越受到大眾的關(guān)注。該文在分析了智能機(jī)和Android為使用者帶來(lái)便利的基礎(chǔ)上,針對(duì)老年人群體智能養(yǎng)老的需求,該文詳細(xì)介紹基于Android平臺(tái)為老年人生活提供輔助功能的App設(shè)計(jì)和開(kāi)發(fā)。該App的應(yīng)用將為老年人的居家生活提供有力的支持。

關(guān)鍵詞:Android;智能機(jī);智能輔助

中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)11-0068-04

Abstract: With the popularity of smart phone, the tentacles of various Apps have extended to every aspect of people's lives, and the applications provided the elder people with intelligent assisted living are increasingly concerned by the general public. Based on the analysis of the convenience and benefits from Android and smart machine, the design and development of the App for the elder people is introduced in the paper, which will provide strong support for the elderly living at home.

Key words: Android; Smartphone; intelligent assistant

1 背景

進(jìn)入老年階段,人們往往會(huì)隨著年齡越大記憶力越來(lái)越衰退,近期愈演愈烈的老年性癡呆癥引起人們的普遍關(guān)注。據(jù)人民日?qǐng)?bào)刊載,中國(guó)老年癡呆患者已超 6 百萬(wàn)人。很多人認(rèn)為,人老了犯糊涂是正?,F(xiàn)象,實(shí)際上這是一種病,學(xué)名老年性癡呆,也稱(chēng)阿爾茨海默病。該病在我國(guó)發(fā)病率約為 5%,多發(fā)于 65 歲以上人群,患病人數(shù)約為 600 萬(wàn)人,并以每年三四十萬(wàn)人的數(shù)量增長(zhǎng)。老年性癡呆是一種漸進(jìn)性的大腦功能衰退性疾病,其多表現(xiàn)為丟三落四、健忘、迷路等等。

近年來(lái),隨著智能手機(jī)和移動(dòng)互聯(lián)網(wǎng)的迅速普及,其應(yīng)用涵蓋了生活的方方面面。這不僅因?yàn)槭謾C(jī)使用起來(lái)方便,更源于移動(dòng)應(yīng)用可以幫人們做很多事情[1]。因此,在智能手機(jī)上實(shí)現(xiàn)協(xié)助老年群體安居生活的輔佐應(yīng)用軟件,提供類(lèi)似護(hù)工時(shí)刻在身邊提示老人生活細(xì)節(jié)的功能,具有一定研究?jī)r(jià)值和實(shí)用價(jià)值。

2 Android介紹

2.1 Android簡(jiǎn)介

Android是由Google公司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開(kāi)發(fā)的基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦。目前Android尚未有統(tǒng)一的中文命名,但我們習(xí)慣稱(chēng)之為“安卓”。Android的一個(gè)最大優(yōu)勢(shì)在于其開(kāi)放性,開(kāi)放的平臺(tái)允許任何移動(dòng)終端廠(chǎng)商加盟,顯著的開(kāi)放性也使其擁有更多的開(kāi)發(fā)者。隨著用戶(hù)和應(yīng)用的日益豐富,一個(gè)嶄新的平臺(tái)也將很快走向成熟。

2.2 Android四大核心組件

Android擁有4大核心組件,分別如下。

組件一:活動(dòng)(Activity)

對(duì)于Android 來(lái)說(shuō),Activity是所有程序的根本,所有程序的事物處理流程都運(yùn)行在Activity 之中;應(yīng)用程序中,一個(gè)Activity顯示一些控件也可以監(jiān)聽(tīng)并處理用戶(hù)的事件做出響應(yīng)。

組件二:服務(wù)(Service)

Service與Activity的級(jí)別差不多,但不能自己運(yùn)行,他是一個(gè)在后臺(tái)運(yùn)行的組件,用來(lái)執(zhí)行長(zhǎng)期操作或執(zhí)行遠(yuǎn)程過(guò)程,并且可以和其他組件進(jìn)行交互。

組件三:廣播接收器(Broadcast)

Broadcast是一個(gè)專(zhuān)注于接收廣播通知信息、并做出對(duì)應(yīng)處理的組件。它們可以啟動(dòng)一個(gè)activity來(lái)響應(yīng)它們收到的信息,或者用NotificationManager來(lái)通知用戶(hù)。

組件四:內(nèi)容提供者(Content Provider)

Content Provider的主要功能在于將一些特定的應(yīng)用程序數(shù)據(jù)供給其他應(yīng)用程序使用。

這些組件之間的通訊要是由Intent協(xié)助完成的。Intent負(fù)責(zé)對(duì)應(yīng)用中一次操作的動(dòng)作、動(dòng)作涉及數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android則根據(jù)此Intent的描述,找到對(duì)應(yīng)的組件,將 Intent傳遞給調(diào)用的組件,并完成組件的調(diào)用[3]。

3 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

3.1 MVC

本項(xiàng)目的應(yīng)用開(kāi)發(fā)框架為MVC(Model View Controller)。MVC是一種軟件設(shè)計(jì)典范,用一種把業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼。MVC主要分三塊,模型(model)-視圖(view)-控制器(controller)[2]。

模型是應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分。通常模型對(duì)象負(fù)責(zé)在數(shù)據(jù)庫(kù)中存取數(shù)據(jù)。在本項(xiàng)目中主要職責(zé)是為視圖提供數(shù)據(jù)和信息以及把用戶(hù)輸入的數(shù)據(jù)傳送給控制器。

視圖是應(yīng)用程序中處理數(shù)據(jù)顯示的部分。通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。在本項(xiàng)目中視圖主要為Activity類(lèi)和定義界面的XML文件組成,他們共同負(fù)責(zé)將模型中的數(shù)據(jù)以一種用戶(hù)能理解的形式顯示在界面上。

控制器是應(yīng)用程序中處理用戶(hù)交互的部分。通??刂破髫?fù)責(zé)從視圖讀取數(shù)據(jù),控制用戶(hù)輸入,并向模型發(fā)送數(shù)據(jù)。在本項(xiàng)目中,控制器負(fù)責(zé)大量的業(yè)務(wù)邏輯處理,主要是對(duì)視圖傳達(dá)的操作進(jìn)行處理并返回,根據(jù)視圖中傳送來(lái)的參數(shù),封裝好對(duì)應(yīng)的模型,在處理后將結(jié)果封裝入模型后再交給視圖進(jìn)行顯示,以此來(lái)滿(mǎn)足用戶(hù)交互的需求。

綜上所述,本項(xiàng)目的系統(tǒng)框架圖如圖1所示。

3.2 SQLite數(shù)據(jù)庫(kù)

本項(xiàng)目的數(shù)據(jù)庫(kù)為SQLite。SQLite是一款非常流行的輕型數(shù)據(jù)庫(kù),是遵守ACID(事務(wù)的四個(gè)基本要素)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),支持 SQL 語(yǔ)言,并且只需使用很少的內(nèi)存就有很好的性能;并因?yàn)樗情_(kāi)源的,所以受到了越來(lái)越多的開(kāi)發(fā)者的喜愛(ài)。

4 系統(tǒng)功能設(shè)計(jì)

通過(guò)調(diào)研和分析,系統(tǒng)的功能如圖2所示進(jìn)行設(shè)計(jì)。

賬戶(hù)管理:WEB端,用戶(hù)可以在該頁(yè)面上進(jìn)行賬戶(hù)的注冊(cè)和登錄;

手機(jī)端混合+GPS定位:該功能是一個(gè)service,運(yùn)行于手機(jī)后臺(tái)。每隔一段時(shí)間會(huì)向后臺(tái)服務(wù)器上傳用戶(hù)的定位信息;

日程設(shè)置:手機(jī)上,用戶(hù)可以設(shè)置日程安排。由一個(gè)運(yùn)行于后臺(tái)的service負(fù)責(zé)管理,到了用戶(hù)設(shè)置的時(shí)間后,將自動(dòng)點(diǎn)亮用戶(hù)手機(jī)并發(fā)聲告知用戶(hù);

語(yǔ)音播報(bào):對(duì)日程設(shè)置的文本內(nèi)容和求助語(yǔ)音的內(nèi)容進(jìn)行語(yǔ)音合成后調(diào)用系統(tǒng)的揚(yáng)聲器進(jìn)行播報(bào);

一鍵求助:按下后將用戶(hù)的定位信息發(fā)送到指定的家屬手機(jī)上。

5 核心功能的實(shí)現(xiàn)

5.1 登錄功能

為了配合登錄功能,作者專(zhuān)門(mén)寫(xiě)了JSP的服務(wù)端。服務(wù)端使用MVC框架,域名為http://lncdz.iok.la/myant/運(yùn)行在tomcat7.0的服務(wù)容器中,手機(jī)端的登錄都將通過(guò)這個(gè)域名進(jìn)行操作。家屬也可以登錄該網(wǎng)站獲取當(dāng)前手機(jī)端用戶(hù)的一些基本信息,包括用戶(hù)的最近一次定位位置,日程設(shè)置信息等。

服務(wù)端主要是使用Servlet來(lái)提供服務(wù),用戶(hù)在手機(jī)端輸入用戶(hù)名和密碼后,手機(jī)端通過(guò)HttpURLConnection類(lèi)的openConnection()建立與服務(wù)器的連接,并將用戶(hù)名和密碼傳輸至服務(wù)器。服務(wù)器接收到請(qǐng)求后,根據(jù)GET還是POST的的方法調(diào)用Servlet的doGet()或者doPost()方法。我們繼承javax.servlet.http.HttpServlet類(lèi)并覆蓋這2個(gè)方法,實(shí)現(xiàn)自定義對(duì)數(shù)據(jù)的處理和結(jié)果的返回。即可實(shí)現(xiàn)登錄,又不僅限于登錄的功能。

5.2 首頁(yè)設(shè)計(jì)

首頁(yè)使用Android的DrawerLayout和Fragment來(lái)實(shí)現(xiàn)側(cè)邊滑動(dòng)的功能菜單欄。向左滑動(dòng)可以調(diào)出,選擇相應(yīng)的菜單可以前往不同的功能模塊。具體實(shí)現(xiàn)如下:

在activity_main.xml文件中,使用FrameLayout定義了首頁(yè)的容器,即容納內(nèi)容顯示的區(qū)域,并用ListView定義了側(cè)邊欄滑動(dòng)出來(lái)的寬度和背景色等樣式。程序運(yùn)行時(shí),手指從左側(cè)屏幕邊緣,持續(xù)滑動(dòng)到屏幕中心之后的位置即可呼出側(cè)邊的功能菜單欄。

5.3 定位功能

目前Android 定位 SDK可以實(shí)現(xiàn)混合定位、GPS 定位和網(wǎng)絡(luò)定位(基站+ WiFi)。混合定位方式,定位 SDK 會(huì)自動(dòng)根據(jù)用戶(hù)的實(shí)際情況進(jìn)行智能判斷使用網(wǎng)絡(luò)定位或 GPS 定位,以達(dá)到最佳的定位效果。

1)在HelpMain_Fragment類(lèi)上實(shí)現(xiàn)定位接口AMapLocationListener接口,該類(lèi)繼承至Fragment。AMapLocationListener是高德地圖SDK包中提供的類(lèi)。這樣該類(lèi)就可以操作定位的功能了。

2)初始化定位對(duì)象LocationManagerProxy,該對(duì)象使用LocationManagerProxy的getInstance()方法獲取,其需要一個(gè)Activity對(duì)象作為參數(shù)。而由于我們的是Fragment,不用通過(guò)this來(lái)給LocationManagerProxy傳入一個(gè)Activity對(duì)象。不過(guò)Fragment提供了this. getActivity()來(lái)獲取一個(gè)Activity對(duì)象。所以這里可以通過(guò)調(diào)用this. getActivity()來(lái)傳入一個(gè)Activity對(duì)象。

3)注冊(cè)定位。使用之前初始化的對(duì)象LocationManagerProxy的requestLocationData(LocationProviderProxy.AMapNetwork, -1, 15, this)方法來(lái)定位。該方法的四個(gè)參數(shù)分別是定位類(lèi)型,LocationProviderProxy.AMapNetwork表示使用高德定位的混合定位模式即GPS+網(wǎng)絡(luò)定位,定位頻率,移動(dòng)距離,回調(diào)監(jiān)聽(tīng)。鑒于應(yīng)用的實(shí)際使用情況,使用-1表示定位一次即可,15表示移動(dòng)距離15米即調(diào)用定位一次。定位的結(jié)果接受對(duì)象為this即實(shí)現(xiàn)了AMapLocationListener的HelpMain_Fragment。

4)onLocationChanged()為定位回調(diào)方法。無(wú)論定位是否成功,該方法都將會(huì)被調(diào)用。該方法內(nèi),定位成功后,我們將地址信息保存起來(lái),并組裝成指定格式的短信文本信息。通過(guò)SmsDeliveredBroadcastReciver類(lèi)將短信文本廣播給手機(jī)的短信服務(wù)“SMS_DELIVERED_ACTION”。這是Android系統(tǒng)提供的一種系統(tǒng)服務(wù),他將代我們將短信通過(guò)移動(dòng)運(yùn)營(yíng)商發(fā)送的指定的手機(jī)上并返回接受結(jié)果。具體代碼如下:

5.4 語(yǔ)音提醒

訊飛語(yǔ)音是國(guó)內(nèi)較為成熟的語(yǔ)音合成平臺(tái),目前其免費(fèi)對(duì)開(kāi)發(fā)者提供語(yǔ)音合成,語(yǔ)音+等免費(fèi)服務(wù)。鑒于實(shí)際情況,作者最終決定使用訊飛語(yǔ)音提供的SDK來(lái)開(kāi)發(fā)語(yǔ)音提醒功能。

1)創(chuàng)建VoiceTTS類(lèi),并在其中實(shí)例化語(yǔ)音合成對(duì)象SpeechSynthesizer ,該對(duì)象為語(yǔ)音合成的核心對(duì)象。此過(guò)程中使用SpeechSynthesizer類(lèi)的createSynthesizer()方法,該方法需要(context,myInitListener)2個(gè)參數(shù),第一個(gè)是Activity本身,第二個(gè)為初始化監(jiān)聽(tīng)接口的一個(gè)實(shí)現(xiàn)對(duì)象InitListener。SpeechSynthesizer對(duì)象可以使用setParameter方法,通過(guò)設(shè)置 (SpeechConstant.VOICE_NAME, "xiaoyan") (SpeechConstant.PITCH, "50") (SpeechConstant.VOLUME, "50")這幾組參數(shù)來(lái)分別設(shè)置發(fā)音人,音調(diào)和音量。

2)為語(yǔ)音合成對(duì)象設(shè)置開(kāi)發(fā)者應(yīng)用ID,該ID可在訊飛語(yǔ)音開(kāi)放平臺(tái)注冊(cè)應(yīng)用獲得,如果沒(méi)有該ID,將導(dǎo)致在線(xiàn)語(yǔ)音合成失敗。使用SpeechUtility對(duì)象的createUtility(context, "appid=xxx")方法設(shè)置,該方法有2個(gè)參數(shù),分別為Activity本身和字符串”appid=xxx”,xxx就是注冊(cè)獲得的appid如557ecf58

3)在HelpMain_Fragment,當(dāng)要播放求救語(yǔ)音時(shí),可以通過(guò)調(diào)用VoiceTTS類(lèi)來(lái)播放語(yǔ)音內(nèi)容。

該段代碼從UserInfoBean中取出之前的設(shè)置的求助語(yǔ)音文本,并實(shí)例化了一個(gè)VoiceTTS類(lèi),傳入了需要語(yǔ)音合成的文本。在云端合成后將返回用戶(hù)端,并調(diào)用手機(jī)的揚(yáng)聲器將合成后的聲音播放出來(lái)。以期周?chē)娜四苈?tīng)到,并通過(guò)語(yǔ)音的內(nèi)容幫助老人。

5.5 日程功能

日程功能是通過(guò)日歷的設(shè)置和提醒功能來(lái)安排老年癡呆患者的行程。

創(chuàng)建一個(gè)CalendarActivity類(lèi)作為該日程顯示的activity,該類(lèi)的視圖效果在main.xml中定義。

其他還有CalendarConvert類(lèi)是用來(lái)陰陽(yáng)歷的轉(zhuǎn)換,ScheduleView類(lèi)作為該日程添加日程功能的activity。通過(guò)LunarCalendar、SpecialCalendar這兩個(gè)類(lèi)來(lái)設(shè)置一年中的節(jié)日、特殊日子。

6 結(jié)束語(yǔ)

老年人輔助項(xiàng)目使用了當(dāng)前流行的Android平臺(tái),其豐富的開(kāi)發(fā)資源和各類(lèi)Jar包以及API大大減少了開(kāi)發(fā)者開(kāi)發(fā)應(yīng)用的難度,滿(mǎn)足了開(kāi)發(fā)一個(gè)應(yīng)該的大部分需求。Android還具有開(kāi)放性特征,使的普通的開(kāi)發(fā)者進(jìn)入Android開(kāi)發(fā)應(yīng)用零門(mén)檻。另外,Android應(yīng)用使用可視化操作界面,通過(guò)簡(jiǎn)單易懂的圖標(biāo)和文字,能讓用戶(hù)快速學(xué)會(huì)使用一個(gè)Application(應(yīng)用)。隨著移動(dòng)平臺(tái)的普及率越來(lái)越高,Android應(yīng)用如智能養(yǎng)老必將進(jìn)入我們生活的方方面面。

參考文獻(xiàn):

[1] 王健生. 我國(guó)現(xiàn)代養(yǎng)老方式將逐步走向智能化[J]. 中國(guó)改革報(bào), 2012(11).

[2] 孫久騰. 未來(lái)智能手機(jī)界面發(fā)展趨勢(shì)[J]. 科技與創(chuàng)新, 2015(11).

[3] 傳智播客高教產(chǎn)品研發(fā)部. Android移動(dòng)應(yīng)用基礎(chǔ)教程[M]. 北京: 中國(guó)鐵道出版社, 2015: 102-105.

猜你喜歡
智能機(jī)
百變智能機(jī)
智能機(jī)柜在取消高速公路省界收費(fèi)站中的應(yīng)用
高速公路ETC門(mén)架系統(tǒng)一體化智能機(jī)柜淺談
無(wú)人機(jī)升空播種 智能機(jī)施肥澆水
第 一 季度AMOLED面板出貨量京東方全球第二
聯(lián)發(fā)科技攜智能機(jī)解決方案隆重亮相通信展3D、雙核、多媒體引領(lǐng)平價(jià)智能機(jī)新風(fēng)尚
通信世界(2012年35期)2012-08-15 00:50:35
朝阳市| 贵港市| 扎兰屯市| 九台市| 凉山| 崇阳县| 漳浦县| 静宁县| 芦溪县| 子洲县| 长子县| 义乌市| 宜川县| 古交市| 乐昌市| 佛教| 浮山县| 正镶白旗| 肥乡县| 鸡泽县| 红桥区| 和田县| 镇雄县| 铜梁县| 来凤县| 多伦县| 文山县| 寿光市| 河西区| 兴义市| 钟祥市| 吉林市| 巴青县| 左云县| 象州县| 五家渠市| 灵石县| 富顺县| 凤冈县| 昭平县| 莲花县|