




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北京邮电大学世传感器的种类很多,其中包括加速度传感器、姿态传感器、磁场传感器、温度传感器、光传感器等,本论文介绍的计步器应用就是使用加速度传感器。本论文主要对计步器以下功能做主要研究。程序运行后进入主界面,用户可以看到行程、消耗热量、速度以及步速。点击开始,进入运行状态,点击清零可以使所有数据回归零初始状态。点击设置选项可以进入设置界面,调节灵敏度来设置需要的灵敏度(灵敏度越高,对身体的动作的感应越灵敏,调节灵敏度来适应不同的体型了,路面等因素),通过设置步长来设置用户自身实际步长(为了估算行走的距离和速度,输入步长得出粗略的距离和速度,仅供参考),设置体重来调节用户的实际体重(这是为了计算消
2、耗的卡路里)。按软件工程步骤:2相关技术介绍2.1 开发工具及环境简介Android 的上层应用程序是用Java 语言开发,同时还需要基于Dalvik 虚拟机,所以Google 公司推荐使用主流的Java 继承开发环境Eclipse。只有Eclipse还不够,因为是使用Java 语言进行开发,还应该有由SUN 公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android 的应用程序开发和Java 开发有较大区别的,所以还需要有Google 提供的Android SDK。同时,还需要在Eclipse 安装ADT,为Android 开发提供开
3、发工具的升级或者变更,是Eclipse 下开发工具的升级下载的工具。简言之,需要以下软件,才能搭建Android 开发环境,从而进行Android 应用程序的开发。(1) Java SDK(2) Eclipse(3) Android SDK(4) ADT2.1.1 开发工具 Android SDK介绍SDK指是软件开发包,被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此,Android SDK指的既是Android专属的软件开发工具包。 Eclipse简介Eclipse是一个著名的跨平台的自由集成开发环境软件。最初
4、主要用来Java语言开发,现在人们可以通过安装插件使其作为C+、Python、PHP等其他语言的开发工具。Eclipse的本身只是一个框架平台,但是随着众多插件的产生,使得Eclipse拥有很好的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。Eclipse含有插件开发环境,这个组件主允许希望扩展Eclipse的软件开发人员构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。尽管Eclipse是使用 Java 语言开发的,但它的用途并不限于
5、Java 语言。例如,支持诸如 C/C+ 和 COBOL 等编程语言的插件已经可用。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。本系统即通过Eclipse,添加Android做插件,匹配上AndroidSDK进行软件的开发。 JDK简介JDK(Java Development Kit)是一个写Java应用程序的程序开发环境。它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和应用程序所需的工具组成。JDK是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已
6、经成为使用最广泛的Java SDK(Software development kit)。JDK是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK中还包括完整的JRE(Java Runtime Environment,Java运行环境),也被称为private runtime。包括了用于产品环境的各种库类,以及给开发员使用的补充库,如国际化的库、IDL库。 ADT简介Google专门为Eclipse开发了一个插件来辅助开发,即Android Development Tools(ADT)。目前Android开发所用的开发工具是Eclips
7、e,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具。2.1.2 开发环境本软件是在windows 7 操作系统中,利用Eclipse开发工具搭载Android SDK工具包,结合Android手机自带的sqlite3数据库进行开发。2.2 Android SDK常见公共类库介绍2.2.1 android的传感器加速度传感器 、磁场传感器、光线传感器 、重力传感器、线性加速传感器、等等。加速度传感器 :Sensor.TYPE_ACCELEROMETER:返回手机设备在X,Y,Z三个方向上的加速度.(
8、我们用到的) 磁场传感器:Sensor.TYPE_MAGNETIC_FIELD:,返回周围磁场在手机的X,Y,Z方向上的影响(磁场分量). 距离感应器:Sensor.TYPE_PROXIMITY: 重力传感器:Sensor.TYPE_GRAVITY: 线性加速传感器:Sensor.TYPE_LINEAR_ACCELERATION: 2.2.2 Android界面Activity介绍Android的界面是由每一个成为Activity的java类组成的,这个类库是制作Android软件必须使用的。 WalkingActivity是应用程序的用户界面,主要功能是按照XML布局文件的内容显示界面并与用
9、户进行交互。只有使用了这个才可以让用户看得见,本类中有几个常用的覆写方法来表示界面的生存周期,分别是:onCreate(),onStart(),onResume(),onPause(),onStop(),onDestroy(),onRestart()七个方法。Activity的生命周期图,如图2-1所示: 图2-1 Android Activity生存周期图3.系统需求分析3.1 可行性研究可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对刚刚开发打算进一步应用的系统的必要性和可能性的分析和研究。可行性研究的目的主要在于,用最小的代价在
10、尽可能短的时间内确定问题是否能够解决。该阶段通过对系统总目标的初步调研与分析,提出可行性方案并进行论证。在此,主要从经济可行性、技术可行性和操作可行性三方面进行分析。3.1.1 经济可行性随着人民生活水平的提高,尤其我国成功承办2008年奥运会以来,人们的健康运动意识逐渐增强。而上班族们由于时间紧张可利用的休闲时间较少,他们则会利用一些零散的时间进行锻炼,比如上班来回的路上多走路少乘车,在办公区尽量选择走楼梯而不是乘坐电梯等等,由于运动时间零散不便于量化自己的运动量,也就无法估计健身效果。在这样的背景前提下,拥有一款计步器就显得尤为必要了。目前市场上的计步器少则几十多则上百,而智能手机计步器软
11、件的成本几乎为零。只需用户拥有一台有安卓系统的智能手机即可安装使用了。并且手机计步器软件携带方便,可以随时随地获取用户的运动信息,拥有不受地理和时间限制的特点,可以充分利用人们的闲暇时间,从这个角度看,该软件可行。3.1.2 技术可行性开发工具:Eclipse Classic 3.7.2数据库环境:sqlite3系统环境:Microsoft Windows XP或以上版本软件实现是依靠基于Android系统的开发技术,使用的是java为主的开发语言进行开发,再加上SOAP技术进行数据交互。 功能说明具体有如下一些功能:计步开始,计步暂停,计步清零,主屏幕显示计步总数,走过的公里数
12、,每分钟走多少步,每小时走多少公里和消耗的卡路里量。进入设置菜单设置灵敏度,设置步长,根据步长计算走过公里数、步速和消耗的卡路里量,设置体重和运动类型,主要用于计算消耗的卡路里量。退出应用。 技术分析表 3-1 技术需求分析关键技术项要求现有水平对照分析数据结构了解了解可以满足要求。数据库熟悉了解虽有欠缺,但通过指导培训,应该在短期内可以达到要求。Java熟练熟悉基本可以满足要求。Android精通 熟悉短期需进一步达到要求,存在一定问题。3.1.3 操作可行性软件采用最主流的Android软件应用开发风格,并使用Android的原生组件进行开发,界面友好,简洁易懂,组建布局具有
13、诱导性,用户使用极其方便快捷。主界面操作流程见图3-1,设置界面操作流程见图3-2。开始计步计步暂停计步清零开始 图3-1 图为主界面操作流程图主界面设置灵敏度运动类型型返回步长体重图3-2 图为设置界面操作流程图3.2 性能需求分析为了保证软件能够长期、安全、稳定、可靠、高效地在Android设备上运行,本系统应该满足以下性能需求。3.2.1 实用性原则充分利用手机的内置传感器功能,为本软件提供信息支持,充分考虑用户获取信息的心理需求,在简洁实用的基础上对软件界面层级进行布局,做到了方便,美观大方。3.2.2 可扩展性与可维护性原则为适应将来的发展,软件应该具有良好的可扩展性和可维护性。系统
14、设计尽可能模块化、组件化,由于Android设备分辨率的各不相同,使软件可灵活配置,适应不同的的Android终端设备。系统的可扩展性应包括能接纳已有的系统和在今后系统软硬件扩展时,能有效地保护已有的资源建设。当用户的需求有所改变时,可以对其快速的配置改变,以应对用户的需求,有一个较好的应用平台Android设备,能容易地安装和卸载。系统易于扩充升级,既能满足当前业务的需求,将来的需求改变升级也被考虑在内。3.2.3 安全可靠性原则随着三网融合的发展,智能终端产业链的构成相对于传统功能手机发生了巨大变化。处于上游的操作系统提供商制定安全机制的基本规则以及相应的应用商店政策。终端厂商在这些规则的
15、基础上,定制个性化的终端软件,建立自有的应用商店。应用软件开发商/开发者则利用操作系统提供商提供的工具进行各类应用软件的开发,第三方应用商店或论坛等提供应用软件的下载渠道。基于智能终端产业链在管理和技术方面暴露出来的脆弱性,来源于传统互联网和信息系统的各类攻击逐渐将目标定位于智能终端,并借助智能终端操作系统的开放性制造出大量的恶意软件。此外,应用商店的审核机制欠缺也导致了恶意软件的泛滥。目前智能终端信息窃取类软件横行,一款应用软件的安全可靠性便显得尤为重要了。现在智能终端个人信息的泄露通常不会引起用户的觉察,或者即便觉察也无法判断其带来的损失。与早期的安全问题不同,个人信息泄露所带来的通常不是
16、直接的高额话费,而是潜在的巨大经济损失。如银行账户泄密、绝密商业信息泄露等。如何保护用户个人信息,防止在用户不知情的情况下泄露隐私信息,是当前亟待解决的问题。本软件承诺不会残留用户任何的隐私信息。3.2.4 用户界面美观原则界面经过对用户心理的调研和统计后。并参考时下流行的软件风格进行设计,在此基础上,加入了对用户具有诱导性的按键设计,使得用户在初次使用的时候就会使用,而不需要在使用的时候进行特别的学习和指导。a. 应用图标见图3-3。图3-3 图为应用图标 b.主界面见图3-4。 c.设置和退出按钮见图3-5。图3-4 图为应用主界面 图3-5 画红圈处为设置,退出按钮d.设置界面见图3-6
17、。图3-6 图为设置界面3.3 数据需求分析表3-2 信息输入输出信息输入信息处理信息输出用户点击开始计步软件通过后台感应手机状态,开始计步通过软件主界面输出计步总数,消耗卡路里等信息用户点击暂停软件将通过后台停止感应手机状态,从而停止计步显示计步的相应信息用户用户点击清零软件通过后台运行清除所记录的数据所有这界面显示的信息将归零等待下次命令用户点击设置键软件通过数据库中的设置管理显示设置主界面输入步长设置对数据库中步长信息进行改变刷新设置中步长列表输入灵敏度设置对数据库中灵敏度信息进行改变刷新设置中灵敏度列表输入体重设置对数据库中的体重进行管理刷新收藏夹电视频道的列表输入运动类型设置对数据库
18、中的运动类型进行管理刷新收藏夹单词的列表4.系统设计4.1 系统总体结构设计在设计一款软件时一般都会把它分成几个模块,在模块的基础上还会再分小模块,这样就达到了软件模块化设计的要求,然后再对各个小模块进行详细设计和编写,采用模块化的管理方式可以使软件结构更清晰,也使得软件的管理更有秩序,使别人容易理解和阅读,但是这些模块也要根据别的模块来设计和约束,不能随便设计脱离框架,设计完成后需要把每个设计完成的模块根据总体框架结合起来。根据本软件的功能需求,将本软件分为以下几个功能模块,如图 4-1所示:主界面步数公里步速时速卡路里设置走过的总步数走过的总长度每分钟多少步走过的总步数运动所消耗的能量暂停
19、/开始清零所有数据清零开始/暂停运动灵敏度步长体重运动类型设置软件敏感程度设置用户一步多长设置用户体重设置用户运动类型结束关闭应用软件 图4-1 整体框架图4.2 系统静态模型设计根据系统需求可以识别系统中存在的对象。从需求中可知我们至少创建2个类:主界面类和设置类。系统和用户交互时需要直观的图形化界面,所以我们需要5个设置界面类。确定了系统的类后需要确定类之间的关系,如图4-2所示:图4-2系统静态模型5.系统实现本章介绍本系统的各个模块的设计和实现。首先在Eclipse中配置好ADT和Android SDK等开发环境,然后新建一个Android项目,项目名为pedometer,然后在And
20、roid项目中的AndroidManifest.xml文件中配置本软件需要使用的权限。本论文用到的是:<manifest xmlns:android=" package="m.liangwenshu.pedometer" android:versionCode="5" android:versionName="1.4.0" android:installLocation="auto">计步器的主要功能有:计步开始/暂停,设置,显示运动所消耗的卡路里,走过长度,步速,时速,里程。本软件是一个结合
21、手机用户特别是智能手机用户常用功能的一个软件平台,本软件可以通过界面快速获取运动的情况,获取信息后可以对这些信息进行个性化处理以方便用户直观的感受运动量。5.1布局界面的设计5.1.1主界面的设计由于Android平台手机屏幕大小有限,为了不使用户有凌乱的感觉,在主界面使用了清爽的色彩以及上两层信息显示的排版,使界面看起来简单明快功能健全。本软件实现了步速,步数,卡路里的显示等功能,为了让界面显得更为美观,使用更为方便,笔者使用在TextView的基础上实现了Tab底部菜单,在底部菜单上添加了 “Pause/Resume”,“Reset”如图5-1所示:(a)主界面运动信息的显示 (b)Pau
22、se/Resume及Reset键图5-1 主界面信息显示及暂停/开始,清零键“Pause/Resume”主要终于用于停止和开启监听手机运动状态,也就是用户可以点击该按钮添来控制手机计步器的工作开始或者暂停。“Reset”用于清除Android数据池所获得的数据即用户可以利用此键将之前所记录的运动信息清零,以便开始记录新一次的运动情况。在主界面下,点击Android固有的功能键即可呼唤出设置和退出应用键,即“Settings”,“Quite”如图5-2所示:图5-2 Settings和Quite键“Settings”用于进入设置主界面,对用户的参数进行设这。“Quite”即退出本程序5.1.2设
23、置界面的设计用户选择设置后会进入一个设置列表界面,该界面是利用Android固有的资源模板,没有做多余的修饰,简单明了的表达出设置项目及目的。每一行显示一条设置信息。该界面仅仅使用一个ListView控件实现设置的列表,不占用较多的尺寸却能够让用户直观的看到所有关于计步器统计运动量所需的信息。列表中的每一项均可再打开一个小窗口用于更改用户信息,例如设置步长功能(见图5-3),在点击“Step length”键后会出现填入用户步长的对话框如图5-4。图5-3 设置步长 图5-4 输入用户步长设置列表中的每一项指向了一条设置内容,点击一条设置项目后能够进入设置项目的输入界面,用户可以根据自身的实际
24、情况来更改设置信息,这也很符合人们的使用习惯。5.2 各功能的实现5.2.1 计步开始及暂停首先对Pause/ resume键做一个监听start_pause_button.setOnClickListener(new View.OnClickListener()同时还要对此时状态做一个判断start_pause_button.setText(mIsRunning ? R.string.pause : R.string.resume);若初始状态为记录则显示pause,若初始状态为非记录状态则显示resume。具体代码的实现见附录“开始/暂停按钮”5.2.2 记录数据清零对清零按钮做一个Vie
25、w即:resetButton = (Button) findViewById(R.id.reset_button);实现清零的语句很简单,对“reset”键做一个监听,当用户点击“reset”键时,即:resetButton.setOnClickListener(new View.OnClickListener()执行一下命令:public void onClick(View v)resetValues(true);这样记录数据清零的按钮就完成了。5.2.3 设置步长对于设置步长,首先要获取用户所输入的步长信息:return Float.valueOf(mSettings.getString(
26、"step_length", "20")若用户未对步长信息进行编辑,则默认为20.在DistanceNotifier中使用mStepLength来计算走过的距离:mDistance = mDistance + (float) (mStepLength / 100000.0);notifyListener();在paceChanged中使用mStepLength来计算步速:mSpeed = / kilometers / hourvalue * mStepLength / centimeters / minute/ 100000f * 60f; / cent
27、imeters/kilometertellFasterSlower();notifyListener();5.2.4 设置体重对于设置体重,首先要获取用户所输入的体重信息:return Float.valueOf(mSettings.getString("body_weight", "50"若用户未对步长信息进行编辑,则默认为50.在CaloriesNotifier中使用mBodyWeight来计算用户因运动所消耗的卡路里:mCalories += (mBodyWeight * (mIsRunning ? METRIC_RUNNING_FACTOR :
28、METRIC_WALKING_FACTOR) * mStepLength / 100000.0;notifyListener();5.2.5 设置运动状态当用户选择跑步运动的时候,程序会判断返回值等于Running: return mSettings.getString("exercise_type", "running").equals("running")判断跑步还是走路是为了方便计算用户所消耗的卡路里,在因运动所消耗卡路里的计算公式中跑步状态和走路状态分别对应不同的参数,根据用户的选择而确定卡路里的计算方法。设置运动装态的详细代
29、码见附录“判断是走路还是跑步”。6.系统测试6.1 测试开始停止模块测试能否根据用户控制得到开始计步和停止计步的结果。6.1.1 测试准备1) 模块名:计步器2) 负责人:梁文淑3) 意图:测试计步器各模块功能。6.1.2测试过程1) 点击应用图标,如图 6-1所示:2) 运动使主界面开始记录数据,如图 6-2所示: 我要过论文我要过论文我要过论文我要过论文我要过论文我要过论文我要过论文图6-1 图为计步器主界面 图6-2 图为计步器主界面3) 在主界面点击Pause,如图 6-3所示:4) 继续运动观察主界面数据是否有变化,如图 6-4所示: 我要过论文我要过论文我要过论文我要过论文我要过论
30、文我要过论文我要过论文我要过论文我要论文我要过论文我要过论文我要过论文我要过论文我要过论文我要文 图6-3 图为停止计步界面 图6-4 图为停止计步后仍在运动界面5) 进入settings(设置)界面,如图 6-5所示:6) 点击设置Sensitivity(灵敏度),如图6-6所示: 过论文我要过论文我要过论 图6-5 图为设置界面 图6-6 图为设置灵敏度界面7) 点击设置Step length(步长),如图 6-7所示:8) 点击设置Body weight(体重),如图 6-8所示:图6-7 图为步长设置界面图6-8 图为体重设置界面9) 点击设置Exercise type(运动类型),如
31、图6-9所示: 过论文我要过论文我要过论文 我要过论文我要过论文我要过论文我要过论文我要过论文我要过论文图6-9 图为运动类型设置界面6.2 测试总结本软件中几个模块的功能经过测试,均测试通过,测试结果和最初的设计基本一致,所有的功能均能正常运行,软件需要比较特殊的运行环境,首先手机的重力感应功能必须有,而且Android系统的版本过低将不能使用。至此基于安卓平台的手机计步器的设计基本完成。5结论经过了数月的努力,Android平台手计步器软件终于完成了。本软件能实现用户对计步器的基本要求。方便用户开启关闭计步器,对运动情况和运动量可以直观的从主界面获取信息,设置选项中的智能人机交互平台也可以
32、明了的对用户信息进行编辑,不需要复杂的操作不需要学习,一目了然。对于智能手机用户来说,基于安卓平台的手机计步器提供了一个快捷方便的平台。为用户提供随时随地的服务,节省用户不必要的资金消耗与时间消耗是本软件设计的一个宗旨,整个框架和细节的设计都是围绕这个宗旨进行的,虽然整个软件还不是很成熟,还有很多不足和需要改进的地方,或者还有很多信息提供不到位,例如我们可以加入音乐播放模块,是用户在运动的同时享受轻松快乐的环境,这些还需要日后慢慢优化和改善,但是最初的设计都实现了。在现在的功能基础上本软件可以进行扩展升级。本软件最初设计的时候就是一个可以扩展的框架,所以为将来加入新的功能提供了很大的方便。本软
33、件虽然不是很强大,但是是我自己亲手编写的,开发一个能在时下最流行的软件,使之顺利的在平台上运行是一件令人兴奋的事情。把自己的想法一步一步地付诸实践,最后成为一个真实的实物,被别人使用和称赞,此时得到的成就感是尤为强烈的。参考文献1 李刚.疯狂的Android讲义M.北京:电子工业出版社.2011.7.2 吴亚峰,苏亚光.Android2.0游戏开发实战宝典M.北京:人民邮电出版 社.2010.7.3 李宁.Android开发完全讲义M.北京:中国水利水电出版社.2012.4.4 严蔚敏,吴伟民.数据结构 M.北京:清华大学出版社.2007.3.5 李刚.疯狂Java讲义M.北京:电子工业出版社
34、.2008.10.6 Bruce Eckel著.Java编程思想(陈昊鹏)M.北京:机械工业出版 社.2007.6:23-357 苏亚光;吴亚峰;索依娜.Android平台下传感器技术开发计步器应用J.电脑编程技巧与维护.2010(23):3-6.8 熊刚.基于Android的智能手机的设计与实现D.武汉理工大学.2010:34一60.9 Sandeep Kumar. Location Based Services using AndroidC. Android Application Fundamentals, 2009 IEEE International Conference: P1-5
35、10 姚昱旻,刘卫国.Android 与J2ME 平台间即时通信的研究与实现J.计算机系统应用.2008(12):118-12011 公磊,周聪.基于Android 的移动终端应用程序开发与研究J.计算机与现代化.2008(8):86-89.12 差沙,地狱男爵.用Android 开发手机应用J.程序员.2008(1):25-2713 Narayan Babu.Android application development skillsJ.IT TIME WEEKLY,2012。6(8):55-58.14 Konrad Adenauer.Android structural design gu
36、idelinesJ.Journal of Computer and Software Engineering,2012.3(6):69-72.附录Activitypackage m.liangwenshu.pedometer;import android.app.Activity;import android.app.backup.RestoreObserver;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.cont
37、ent.ServiceConnection;import android.content.SharedPreferences;import android.os.Bundle;import android.os.Handler;import android.os.IBinder;import android.os.Message;import android.preference.PreferenceManager;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import andro
38、id.view.View;import android.widget.Button;import android.widget.LinearLayout;import android.widget.TextView;/* * author Liangwenshu */public class WalkingActivity extends Activityprivate static final String TAG = "Pedometer"private SharedPreferences mSettings;private PedometerSettings mPed
39、ometerSettings;private Utils mUtils;private TextView mStepValueView; / 步数private TextView mPaceValueView; /private TextView mDistanceValueView; / 距离private TextView mSpeedValueView; / 速度private TextView mCaloriesValueView; / 卡路里消耗显示框TextView mDesiredPaceView;private int mStepValue;/ mStepValueView的值
40、private int mPaceValue;/ mPaceValueView的值private float mDistanceValue;/ mDistanceValueView的值private float mSpeedValue;/ mSpeedValueView的值private int mCaloriesValue;/ mCaloriesValueView的值private float mDesiredPaceOrSpeed;/private int mMaintain;/ is爬山private boolean mIsMetric=true;/ 公制和米制切换标志private f
41、loat mMaintainInc;/private boolean mQuitting = false; /private Button resetButton;private Button start_pause_button;/ Set when user selected Quit from menu, can be used by onPause, onStop,/ onDestroy/* * True, when service is running. */private boolean mIsRunning;/ 程序是否运行的标志位/* Called when the activ
42、ity is first created. */Override/ 开始函数,重写该函数,加入日志。Overrideprotected void onStart()Log.i(TAG, "ACTIVITY onStart");super.onStart();/ 重写回复函数Overrideprotected void onResume()Log.i(TAG, "ACTIVITY onResume");super.onResume();mSettings = PreferenceManager.getDefaultSharedPreferences(thi
43、s);mPedometerSettings = new PedometerSettings(mSettings);mUtils.setSpeak(mSettings.getBoolean("speak", false);/ Read from preferences if the service was running on the last onPausemIsRunning = mPedometerSettings.isServiceRunning();/ Start the service if this is considered to be an applicat
44、ion start/ (last onPause was long ago)mPedometerSettings.clearServiceRunning();mStepValueView = (TextView) findViewById(R.id.step_value);mPaceValueView = (TextView) findViewById(R.id.pace_value);mDistanceValueView = (TextView) findViewById(R.id.distance_value);mSpeedValueView = (TextView) findViewBy
45、Id(R.id.speed_value);mCaloriesValueView = (TextView) findViewById(R.id.calories_value);mDesiredPaceView = (TextView) findViewById(R.id.desired_pace_value);/ 重设按钮resetButton = (Button) findViewById(R.id.reset_button);resetButton.setOnClickListener(new View.OnClickListener()public void onClick(View v)
46、resetValues(true););/ 开始/暂停按钮start_pause_button = (Button) findViewById(R.id.start_pause_button);start_pause_button.setText(mIsRunning ? R.string.pause : R.string.resume);start_pause_button.setOnClickListener(new View.OnClickListener()public void onClick(View v)if (start_pause_button.getText().equal
47、s(getResources().getString(R.string.pause)start_pause_button.setText(R.string.resume);unbindStepService();stopStepService();else if (start_pause_button.getText().equals(getResources().getString(R.string.resume)start_pause_button.setText(R.string.pause);startStepService();bindStepService(););mIsMetri
48、c = mPedometerSettings.isMetric();(TextView) findViewById(R.id.distance_units).setText(getString(mIsMetric ? R.string.kilometers: R.es);(TextView) findViewById(R.id.speed_units).setText(getString(mIsMetric ? R.string.kilometers_per_hour: R.es_per_hour);mMaintain = mPedometerSetti
49、ngs.getMaintainOption();if (mMaintain = PedometerSettings.M_PACE)mMaintainInc = 5f;mDesiredPaceOrSpeed = (float) mPedometerSettings.getDesiredPace();else if (mMaintain = PedometerSettings.M_SPEED)mDesiredPaceOrSpeed = mPedometerSettings.getDesiredSpeed();mMaintainInc = 0.1f;Button button1 = (Button)
50、 findViewById(R.id.button_desired_pace_lower);button1.setOnClickListener(new View.OnClickListener()public void onClick(View v)mDesiredPaceOrSpeed -= mMaintainInc;mDesiredPaceOrSpeed = Math.round(mDesiredPaceOrSpeed * 10) / 10f;displayDesiredPaceOrSpeed();setDesiredPaceOrSpeed(mDesiredPaceOrSpeed););
51、Button button2 = (Button) findViewById(R.id.button_desired_pace_raise);button2.setOnClickListener(new View.OnClickListener()public void onClick(View v)mDesiredPaceOrSpeed += mMaintainInc;mDesiredPaceOrSpeed = Math.round(mDesiredPaceOrSpeed * 10) / 10f;displayDesiredPaceOrSpeed();setDesiredPaceOrSpee
52、d(mDesiredPaceOrSpeed););Overrideprotected void onPause()Log.i(TAG, "ACTIVITY onPause");if (mIsRunning)unbindStepService();if (mQuitting)mPedometerSettings.saveServiceRunningWithNullTimestamp(mIsRunning);elsemPedometerSettings.saveServiceRunningWithTimestamp(mIsRunning);super.onPause();savePaceSetting();/ 开始/暂停按钮public void onClick(View v)if (start_pause_button.getText().equals(getResources().getString(R.string.pause)start_pause_button.setText(R.string.resume);unbindStepService();stopStepService();else if (start_pause_button.getText().equals(getResour
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司材料欠款合同范本
- 小院改造转让合同范本
- 墙绘合同范本
- 农民蜂蜜销售合同范本
- 吉林省吉林市丰满区2024-2025学年八年级上学期期末考试数学试卷(含答案)
- 废气治理合同范本
- XX大学XX学院毕业论文答辩演讲模板
- 2025版权交易的代理合同
- 2025年度智能生产线升级借款合同
- 2025国内技术转让合同示范文本
- 2024年山西华阳新材料科技集团有限公司招聘笔试真题
- 2025年03月双鸭山市“市委书记进校园”引才活动黑龙江能源职业学院13人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025年湖南兴湘投资控股集团有限公司春季校园招聘28人笔试参考题库附带答案详解
- 比例的应用(教学设计)-2024-2025学年六年级下册数学北师大版
- 农业机械设备使用与操作指南
- 2025年03月春季甘肃临夏州引进高层次人才和急需紧缺专业技术人才344人笔试历年参考题库考点剖析附解题思路及答案详解
- 2025年03月州省气象部门第二批公开招聘应届高校毕业生34人(第6号)笔试历年参考题库考点剖析附解题思路及答案详解
- 图书管理员的岗位技能要求与试题及答案
- 自体输血管理制度与技术规范
- 燃气管道管道吹扫方案
- 2025年浙江省初中学校TZ8共同体中考数学一模试卷
评论
0/150
提交评论