android之传感器编程

android之传感器编程
android之传感器编程

Android传感器编程

知识点概述:

1.传感器的概念

2.Android中传感器的种类

3.Android中传感器的功能

知识点详述:

1.传感器的概念

传感器是一种物理装置或生物器官,能够探测、感受外界的信号、物理条件(如光、热、湿度)或化学组成(如烟雾),并将探知的信息传递给其它装置或器官。同时也可以说传感器是一种检测装置,能感受被测量的信息,并能将检测的感受到的信息,按一定规律变换成为电信号或其它所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。它是实现自动检测和自动控制的首要环节。

根据工作原理,传感器可分为物理传感器和化学传感器两大类。

物理传感器应用的是物理效应,诸如离化、极化、热电、光电、磁电等效应。被测信号量的微小变化都将转换成电信号。

化学传感器包括哪些以化学吸附、电化学反应等现象为因果关系的传感器。被测信号量的微小变化也将转换成电信

号。

注:目前大多数传感器是以物理原理为基础运作的。

2.Android中传感器的种类

Android操作系统中内置了很多传感器,同时传感器也成为了手机硬件的重要组成部分。比如在部分游戏或应用软件中可以自动识别屏幕的横屏、竖屏方向来改变屏幕显示布局,这就是因为手机硬件支持了重力感应、方向判断等功能。在Android中支持下面几种传感器:

●Sensor.GRAVITY: 重力传感器

●Sensor.TYPE_ACCELEROMETER: 加速度传感器

●Sensor.TYPE_GYROSCOPE: 陀螺仪传感器

●Sensor.TYPE_LIGHT: 亮度(光线)传感器

●Sensor.TYPE_MAGNETIC_FIELD: 地磁传感器

●Sensor.TYPE_ORIENTATION: 方向传感器

●Sensor.TYPE_PRESSURE: 压力传感器

●Sensor.TYPE_PROXIMITY: 近程传感器

●Sensor.TYPE_TEMPERATURE: 温度传感器

3.Android中传感器的功能

在Android中使用传感器,首先需要了解SensorManager和SensorEventListener.

SensorManager是所有传感器的一个综合管理类,包括了传感器的种类、采样率、精准度等。可以通过getSystemService 方法来获取一个SensorManager实例。代码如下:SensorManagermSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);

取得SensorManager实例之后,可以通过getSensorList方法来获得需要的传感器类型,存到一个传感器列表中,如下代码可以得到以下方向传感器:

List sensors = mSensorManager.getSensorList(Sensor.TYPE_ORIENTATION);

要与传感器交互,应用程序中必须注册相关的传感器, 当不再用时还要注销.代码如下:

//注册传感器

//参数一表示接收信号的Listener实例

//参数二表示想接收的传感器类型

//参数三表示接收频度,SensorManager.SENSOR_DELAY_ FASTEST表示尽可能快地获得传感器数据

Boolean mRegisteredSensor = mSensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_FASTEST);

//注销传感器

mSensorManager.unregisterListener(this);

SensorEventListener是使用传感器的核心,包括以下两个方法必须实现:

●onSensorChanged(SensorEvent event)方法在传感器值更

改时调用.该方法只由受此应用程序监视的传感器调用.

该方法的参数是一个SensorEvent对象,该对象主要包括一组浮点数,表示传感器获得的方向、加速度等信息。

如以下代码可以取得其值:

float x = event.values[SensorManager.DATA_X];

float y = event.values[SensorManager.DATA_Y];

float z = event.values[SensorManager.DATA_Z];

注:其中SensorEvent类的values变量非常重要,该变量的类型是float[]。但该变量最多只有3个元素,而且根据传感器的不同,values变量中元素所代表的含义也不同。

在方向传感器中values变量的3个值都表示度数,它们的含义如下:

values[0]:该值表示方位,也就是手机绕着Z轴旋转的角度。0表示北(North);90表示东(East);180表示南(South);270表示西(West),可以利用这个特性来实现电子罗盘。

values[1]:该值表示倾斜度,或手机翘起的程度。当手机绕着X 轴倾斜时该值发生变化。values[1]的取值范围是-180≤values[1]≤180。假设将手机屏幕朝上水平放在桌子上,这时如果桌子是完全水平的,values[1]的值应该是0。这时从手机顶部开始抬起,直到将手机沿X轴旋转180度(屏幕向下水平放在桌面上)。在这个旋转过程中,values[1]会在0到-180之间变化,也就是说,从手机顶部抬起时,values[1]的值会逐渐变小,直到等于-180。如果从手机底部开始抬起,直到将手机沿X 轴旋转180度,这时values[1]会在0到180之间变化。也就是values[1]的值会逐渐增大,直到等于180。可以利用values[1]和下面要介绍的values[2]来测量桌子等物体的倾斜度。

values[2]:表示手机沿着Y轴的滚动角度。取值范围是-90≤values[2]≤90。假设将手机屏幕朝上水平放在桌面上,这时如果桌面是平的,values[2]的值应为0。将手机左侧逐渐抬起时,values[2]的值逐渐变小,直到手机垂直于桌面放置,这时values[2]的值是-90。将手机右侧逐渐抬起时,values[2]的值逐渐增大,直到手机垂直于桌面放置,这时values[2]的值是90。

在垂直位置时继续向右或向左滚动,values[2]的值会继续在-90至90之间变化。

onAccuracyChanged(Sensor sensor, int accuracy)方法在传感器的精准度发生改变时调用.参数一表示传感器,参数二表示该传感器新的准确值.

基于ANDROID传感器的应用设计

学号136312126 苏州市职业大学 毕业设计 题目基于ANDROID传感器的应用设计 学生姓名:夏新德 专业班级:13计算机应用技术3(3G)学院(部):计算机工程学院 校内指导教师:贾震斌(讲师) 校外指导教师:万勇平(工程师) 完成日期:2015年5 月 摘要: 内容主要是关于传感器的内容 和你开题报告的选题内容相似

ABSTRACT 将摘要翻译成英文 关键词:传感器,Android

目录 第1章绪论 1.1课题的研究意义 说一说你这款软件的用途以及设计意义,写的多一点

1.2主要研究内容以及拟解决的问题 开题报告上面有,就像那样写 1.3 第3章技术背景介绍 3.1传感器 3.1.1传感器的介绍 传感器的发展史传感器是一种物理装置或生物器官,能够探测、感受外界的信号、物理条件(如光、热、湿度)或化学组成(如烟雾),并将探知的信息传递给其他装置或器官。国家标准GB7665-87对传感器下的定义是:“能够感受规定的被测量并按照一定的规律转换成可用输出信号的器件或装置,通常由敏感元件和转换元件组成”。这里所说的“可用输出信号”是指便于加工处理、便于传输利用的信号。现在电信号是最易于处理和便于传输的信号。传感器是一种检测装置,能感受到被测量的信息,并能将检测感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。它是实现自动检测和自动控制的首要环节 传感器.不像计算机这么大型复杂的东西.那样的话人们会就清楚的记录它的历史了温度传感器是最早开发,应用最广的一类传感器。根据美国仪器学会的调查,1990年,温度传感器的市场份额大大超过了其他的传感器。从17世纪初伽利略发明温度计开始,人们开始利用温度进行测量。真正把温度变成电信号的传感器是

android实验报告

创建一个名为“登录页面”的布局文件,该文件用于展示登录信息。程序界面如下图所示:; public class Activity01 extends Activity { EditText name; EditText pass ; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); public void click(View view){ Intent intent1=new Intent(this,Mylayout1MainActivity.class); startActivity(intent1);} public void click1(View view){ SharedPreferences sf1=getSharedPreferences("account",Context.MODE_PRIVATE); String name1=sf1.getString("name",""); String pass1=sf1.getString("pass",""); String name2=name.getText().toString(); String pass2=pass.getText().toString(); if(name1.equals(name2)&&pass1.equals(pass2)){ Intent intent2=new Intent(this, Textview1.class); intent2.putExtra("name", name1);

基于Android的传感器技术应用开发_毕业设计

基于Android的传感器技术应用开发 目录 摘要 ---------------------------------------------------------------------------------------------------------------------I ABSTRACT --------------------------------------------------------------------------------------------------------------- II 引言----------------------------------------------------------------------------------------------------------------------------------------- 1 1绪论---------------------------------------------------------------------------------------------------------------------------------- 2 1.1研究背景与意义 ----------------------------------------------------------------------------------------------------- 2 1.2国内外智能手机应用程序现状研究 ---------------------------------------------------------------------------- 3 1.3研究目的及项目背景介绍----------------------------------------------------------------------------------------- 3 1.4论文的研究内容和结构安排-------------------------------------------------------------------------------------- 3 1.4.1论文内容概述 ----------------------------------------------------------------------------------------------- 3 1.4.2论文内容结构安排 ----------------------------------------------------------------------------------------- 4 1.5小结--------------------------------------------------------------------------------------------------------------------- 4 2基于Android的传感器技术研究 ----------------------------------------------------------------------------------------- 5 2.1Android简述 --------------------------------------------------------------------------------------------------------- 5 2.1.1Android平台简介------------------------------------------------------------------------------------------- 5 2.1.2Android开发框架------------------------------------------------------------------------------------------- 5 2.1.3Android应用程序组件------------------------------------------------------------------------------------- 7 2.1.4Android软件开发的优点及缺点------------------------------------------------------------------------- 8 2.1.5Basic4android开发环境的搭建-------------------------------------------------------------------------- 9 2.1.6运用Basic4android软件的优势 ------------------------------------------------------------------------ 11 2.2传感器概念与分类 ------------------------------------------------------------------------------------------------- 11 2.2.1传感器的概念 ---------------------------------------------------------------------------------------------- 11 2.2.2传感器的分类 ---------------------------------------------------------------------------------------------- 12 2. 3传感器在智能手机中的应用------------------------------------------------------------------------------------12 2. 4Android平台传感器的种类 -------------------------------------------------------------------------------------12 2.4.1加速传感器(重力传感器)Accelerometer --------------------------------------------------------------- 14 2.4.2姿态传感器Orientation ---------------------------------------------------------------------------------- 14 2. 5传感器的使用方法 ------------------------------------------------------------------------------------------------15 2.5.1加速度传感器的调用(PhoneAccelerometer) ---------------------------------------------------------- 15 2.5.2方向传感器的调用(PhoneOrientation)----------------------------------------------------------------- 16 2.6B4A-Bridge软件的使用 ------------------------------------------------------------------------------------------16 2.7小结--------------------------------------------------------------------------------------------------------------------18 3游戏程序设计架构详解 --------------------------------------------------------------------------------------------------------18 3.1程序开发背景与功能简介----------------------------------------------------------------------------------------18 3.1.1程序开发背景简介 ---------------------------------------------------------------------------------------- 18 3.1.2游戏功能简介 ---------------------------------------------------------------------------------------------- 19 3.2游戏开发平台及工作准备----------------------------------------------------------------------------------------19 3.2.1游戏开发平台 ---------------------------------------------------------------------------------------------- 19

Android开发教程传感器编程详解-麦子学院

Android操作系统作为一款开源的手机操作系统,深受开发者喜爱,开发者们也可以根据自己的需求进行各种修改。对开android开发初学者,对于传感器的编程技巧需要重点了解下。如下例: 1. Accelrator的x,y,z轴的正负向: 手机屏幕向上水平放置时: (x,y,z) = (0, 0, -10) 而不是 (0, 0, 10) 当手机顶部抬起时: y减小,且为负值 当手机底部抬起时: y增加,且为正值 当手机右侧抬起时: x减小,且为负值 当手机左侧抬起时: x增加,且为正值 2. Accelrator的z轴的变化: 手机屏幕向上水平放置时,z= -10 手机屏幕竖直放置时, z= 0 手机屏幕向下水平放置时,z= 10 3. 当x变为+5时,手机画面切换为竖向 当x变为-5时,手机画面切换为横向 4. Android传感器相关的类在SDK1.1和SDK1.5中不一样,因此实现代码也不一样 5. Android传感器类型分为:方向、加速表、光线、磁场、临近性、温度等 程序中分别为: 方向: SensorManager.SENSOR_ORIENTATION, 加速表: SensorManager.SENSOR_ACCELEROMETER 光线: SensorManager.SENSOR_LIGHT 磁场: SensorManager.SENSOR_MAGNETIC_FIELD 临近性: SensorManager.SENSOR_PROXIMITY 温度: SensorManager.SENSOR_TEMPERATURE 采样率:最快、游戏、普通、用户界面。当应用程序请求特定的采样率时,其实只是对Android传感器子系统的一个提示,或者一个建议。不保证特定的采样率可用。 最快: SensorManager.SENSOR_DELAY_FASTEST 游戏: SensorManager.SENSOR_DELAY_GAME 普通: SensorManager.SENSOR_DELAY_NORMAL 用户界面: SensorManager.SENSOR_DELAY_UI 准确性:高、低、中、不可靠。 6. Orientation Sensor三个坐标的含义: values[0]:方位角(水平旋转角),简单的说就是手机的头现在朝向哪个方位,0=北、90=东、180=南、270=西(可是好像不太准) values[1]:纵向旋转角,0=面朝上平置、-90=垂直向上、-180/180=面朝下平置、90=垂直向下 values[2]:橫向旋转角,0=朝前、90=往右倒、-90=往左倒 7. 自动侦测手机方向

基于android开发实验报告总结

基于android开发实验 报告总结 组员: 指导老师: 2016.12.15

目录 实验一 Android开发环境的搭建 (3) 1 实验目的及要求 (3) 2 实验设备(环境)及要求 (3) 3 实验内容 (3) 4 实验步骤 (3) 5 实验核心代码(关键代码),及调试中的问题 (4) 6 实验的运行结果及分析 (9) 3 实验设备(环境)及要求 (10) 实验三 GUI创建套件Widget的使用 (18) 1 实验目的及要求 (18) 2 实验设备(环境)及要求 (18) 3 实验内容 (19) 4 实验步骤 (19) 5 实验核心代码(关键代码),及调试中的问题 (19) 6 实验的运行结果及分析 (28) 实验四 SQLite应用 (29) 1 实验目的及要求 (29) 2 实验设备(环境)及要求 (30) 3 实验内容 (30) 4 实验步骤 (30) 5 实验核心代码(关键代码),及调试中的问题 (30) 6 实验的运行结果及分析 (41)

实验一 Android开发环境的搭建 1 实验目的及要求 1.搭建Eclipse+Android开发平台 2.创建简单的Android应用程序 3.创建Activity并利用intent的实现Activity的跳转 2 实验设备(环境)及要求 1)PC计算机 2)JDK安装包 3)Eclipse安装包 4)Android SDK安装包 5)ADT插件 3 实验内容 1)搭建Eclipse+Android开发环境 2)创建一个简单的”hello world”工程 3)创建两个Activity,实现简单的Activity之间的参数传递 4 实验步骤 1)下载安装JDK 1.6,配置环境变量,如果所示。

Android Sensor传感器系统架构初探

?第一层次底层驱动层,包括标准Linux,Android核心驱动,Android相关设备驱动,G-sensor的设备驱动程序即存在于此 ?第二层次Android标准C/C++库,包括硬件抽象层,Android各底层库,本地库,JNI ?第三层次Android Java Framwork框架层 ?第四层次Java应用程序 本文重点关注硬件抽象层,JNI以及Framework。

1.1 硬件抽象层 硬件抽象层通过例如open(), read(), write(), ioctl(), poll()等函数调用的方式,与底层设备驱动程序进行交互,而这些函数调用是底层设备驱动程序事先准备好的。 用于交互的关键是文件描述符fd,fd通过open()打开G-sensor设备节点而得到,即fd = open ("/dev/bma220", O_RDONLY);而/dev/bma220这个设备节点是在底层设备驱动中注册完成的。 其他的函数调用如read(), write()等都通过该文件描述符fd对G-sensor设备进行操作。 1.2 JNI (Java Native Interface) JNI层可以认为是整个体系结构中的配角,概括地讲,它就完成了一项任务,既实现从C++语言到Java语言的转换。JNI层为Java Framework层提供一系列接口,而这些接口函数的具体实现中,利用例如module->methods->open(), sSensorDevice->data_open(), sSensorDevice->poll()等回调函数与硬件抽象层进行交互。而这些open(), poll()回调函数在硬件抽象层中具体实现。 1.3 Java Framework Framework层提供各种类和类的对象,可作为系统的守护进程运行,也可供上层应用程序的使用。 例如类SensorManager,它作为系统的守护进程在初始化的时候开始运行,其子类SensorThread中的子类SensorThreadRunnable通过sensors_data_poll()实现了对 G-sensor数据的轮训访问,而sensors_data_poll()通过JNI层转换到硬件抽象层去具体实现poll()。 2 数据结构 一般境况下,硬件抽象层对硬件的描述都分为control和data两大类。 2.1 sensors_control_context_t struct sensors_control_context_t { struct sensors_control_device_t device;

Android实验一实验报告

Android实验报告一 姓名:丁军峰 班级:信科12-3 学号:08123448

一、实验内容 编写一个Android应用程序,实现对自己物品的管理,功能包括添加、删除和查询等 二、实验目的 了解android开发流程,掌握SQLite数据库和ListView控件的使用三、需求分析 使用SQLite数据库,使用ListView控件显示物品 四、实验过程 1.创建程序,设计用户交互界面

Android基础实验

实验01 简单Android UI设计 【实验目的】 熟悉用Eclipse开发Android简单界面,锻炼简单Java代码编写。 【实验要求】 按要求设计一个Android活动窗体,并实现其功能。 学习材料:https://https://www.360docs.net/doc/c34772619.html,/s/1geaFkzh 【示范模仿】 实验1.1 设计一个登入窗口,在一个可编辑文本框中输入某一用户名,输入相应密码,按【确定】按钮,若用户名不是“13rg”,则显示“用户名错误”。否则,若密码不是“1234”,则显示“密码错误”。当用户名输入“13rg”并且密码输入“1234”的情况下,显示“恭喜成功,欢迎进入系统!”。 (1) 进入Eclipse开发环境 单击桌面上Eclipse快捷键,打开Eclipse环境。 (2) 创建项目 单击“File”菜单下的“New”菜单项中的“Android Application Project”子菜单项,在“New Android Application”对话框中的Application Name文本框中输入app1_1,单击Next 按钮,在出现的新的对话框中都单击Next按钮,最后一个对话框单击Finish按钮,进入设计窗体。 (3) 添加控件 首先,单击左边文件夹列表中的res文件夹,再单击其下的layout文件夹,双击其下的activity_main.xml文件。单击Graphical Layout标签,进入可视设计界面,如图1-1。

图1-1 将Form Widgets等控件列表中的控件拖曳到可视设计窗口中。分别往窗体中添加3个TextView控件textView1~textView3、2个EditText控件editText1~editText1和1个Button 控件button1。 (4) 设置控件属性 控件属性设置如表1-1所示。 表1-1 控件属性设置 设置完控件属性后,窗体中控件及其布局如图1-1所示。 (5) 添加并编写控件事件代码 单击左边src文件夹,单击其下的com.example.app1_1,单击其下的MainActivity.java 文件,进入编码界面。 输入黄色底色的代码: package com.example.app1_1; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.360docs.net/doc/c34772619.html,yout.activity_main); Button bt=(Button)findViewById(R.id.button1); bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub EditText textBox1=(EditText)findViewById(R.id.editText1); EditText textBox2=(EditText)findViewById(R.id.editText2); TextView lb3=(TextView)findViewById(R.id.textView3); if (!textBox1.getText().toString().trim().equals("13rg"))

Android传感器编程入门

本讲内容:Android传感器编程入门,分别包括加速度传感器(accelerometer),陀螺仪(gyroscope),环境光照传感器(light),磁力传感器(magnetic field),方向传感器(orientation),压力传感器(pressure),距离传感器(proximity)和温度传感器(temperature) 一、前言 我很喜欢电脑,可是笔记本还是太大,笔记本电脑再小还是要弄个小包背起来的,智能手机则不同,它完全就是一个手机,可以随意装在一个口袋里随身携带。因此我在2002年左右时最喜欢玩装备是Dell的PDA,2007年的时候最喜欢玩的是N73,而在2010年最喜欢玩的则是Milestone。眼见着手机的功能越来越强,时至今日智能手机甚至在某些方面已经强过了台式机和笔记本。本节课讲的就是智能手机强过台式机和笔记本的地方:传感器。 2008年的时候我很喜欢我的小白笔记本Macbook,喜欢玩它的一个小软件,一拍桌子,笔记本感受到了震动,它就转换了一个桌面出来,这让我像个小孩子一样没事就拍拍桌子。这一功能这得益于苹果笔记本内置有传感器。 我不知道iPhone手机是不是第一个把各种各样的传感器运用在手机上的,不过我知道iPhone是把传感器运用在手机上最成功的第一个。随后的Android系统也内置了大量的传感器,这让Android系统手机和普通的诺基亚智能机和Windows CE智能机相比牛气了许多,在拥有了Milestone之后,我的N73就被仍在抽屉的角落里了。 从Android1.5开始,系统内置了对多达八种传感器的支持,他们分别是:加速度传感器(accelerometer),陀螺仪(gyroscope),环境光照传感器(light),磁力传感器(magnetic field),方向传感器(orientation),压力传感器(pressure),距离传感器(proximity)和温度传感器(temperature)。 利用这些传感器我们可以制作出各种有趣的应用程序和游戏。譬如在口袋里晃一晃手机,手机就开始神不知鬼不觉的录音,不要着急这个很容易做,我们在本文的结尾就一起制作这个小应用。 本讲的学习方式还是在实战中学习,需要提醒的是模拟器中无法模拟传感器,因此你需要准备一款Android真机才能运行本讲的例子。 二、实例:手机传感器清单 我们还是先看程序后解释, 1、创建一个项目 Lesson37_HelloSensor , 主Activity名字叫 mainActivity.java 2、UI布局文件main.xml的内容如下: view source

实验二 android基本控件实验

实验二 android基本控件实验 【目的】 熟悉Android常用控件的基本操作,掌握它们的基本使用方法。了解控件之间的构成关系,熟悉适配器的使用原理。 【要求】 1、了解控件的继承关系; 2、掌握适配器的使用; 3、掌握信息提示的实现机制; 4、实现基本界面。 【原理】 1.控件类之间的关系 android.view.View类(视图类)呈现了最基本的UI构造块。View类是Android中的一个超类,几乎包含了所有的屏幕类型,主要负责绘制和事件处理。 Android中控件类的扩展结构如图所示。 View有众多的扩展者,它们大部分是在android.widget包中,这些继承者实际上就是Android 系统中的“控件”。View实际上就是各个控件的基类,创建交互式的图形用户界面的基础。View的直接继承者包括文本视图(TextView)、图像视图(ImageView)、进度条(ProgressBar)等。它们各自又有众多的继承者。每个控件除了继承父类功能之外,一般还具有自己的公有 方法、保护方法、XML属性等。 在Android中使用各种控件的一般情况是在布局文件中可以实现UI的外观,然后在Java文件中实现对各种控件的控制动作。控件类的名称也是它们在布局文件XML中使用的标签名称。

2.控件通用行为和属性 View是Android中所有控件类的基类,因此View中一些内容是所有控件类都具有的通用行为和属性。 提示:由于Java语言不支持多重继承,因此Android控件不可能以基本功能的“排列组合”的方式实现。在这种情况下,为了实现功能的复用,基类的功能往往做得较强,作为控件的祖先类,View所实现的功能也是最多的。 控件类经常在布局文件中使用,因此其可以使用XML属性(XMLAttributes),和Java代码经常具有对应关系。 View作为各种控件的基类,其XML属性所有控件通用,XML属性及其对应的方法如表1所示。 表1 View中的XML属性及其对应的方法 其中,android:id表示控件的标识,通常需要在布局文件中指定这个属性。View中与控件标识相关的几个方法如下所示: public int getId() // 获得控件的id(int类型)

Android程序开发实验报告

山西大学 物理电子工程学院 论文题目:基于Android系统的GPS 程序开发 学号:* 姓名:* * * 指导老师:* *

摘要 在日常生活中,我们经常需要知道自己的具体位置,尤其是在 旅游或陌生城市中。而手机作为目前最常见、最方便的电子信息载体,无疑是我们最好的选择。为了让智能手机用户能够随时随地查询GPS 所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上。本文选择的是最常见的Android系统的程序开发。对于软件从业人员来说,该平台具有无限的吸引力。 因此,本文首先介绍安卓系统在个人计算机上开发平台的搭建,并尝试在安卓系统上开发一款基于手机自带GPS组件的GPS应用。 关键字:Android,GPS,SDK,JDK,ADT,Eclipse 一引言 (一)开发背景 随着网络世界的深入生活,地球网络化已经是一条必然之路。而今后的网络也将逐渐的走向移动互联网的轨道。像手机,平板计算机,笔记本计算机等可以搭乘移动互联网的产品中使用人数最多的数码产品便是智能手机了。它已经在逐步的取代其他的电子产品的市场份额。据《2013-2017年中国智能手机行业市场需求预测与投资战略规划分析报告》估算,2012前三季度,全球智能手机用户总数已经突破了10亿大关。而2011前三季度的用户量只有约7亿户。可以看出,智能手机市场的潜力不可估量。

(二)Android 与GPS 简介 1.Android 是一种基于Linux 的自由及开放源代码的操作系统,主要使用于移动设 备,如智能手机和平板计算机,由Google 公 司和开放手机联盟领导及开发。 2011年第一季度,Android 在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年11月数据显示,Android 占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。 Android 的系统架构和其操作系统一 样,采用了分层的架构。从架构图看, Android 分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运 行库层和Linux 内核层。 Android 系统所具有的特点有:开放性、丰富的硬件、方便开发。 2.GPS 是英文Global Positioning System (全球定位系统) 的简称。GPS 起始于1958年美国军方的一个项目, 1964年投入使用。GPS 定位的基本原理是根据高速运动的卫星瞬间位置作为已知的起算数据,采用空间距离后方交会的方法,确定待测点的位置。GPS 由空间部分、地面控制系统、用户设备部分三部分组成。作为先进的测量手段和新的生产力,GPS 已经融入了国民经济建设、国防建设和社会发展的各个应用领域。GPS 技术与我们的日常生活日益相关。

基于MATLAB和Android智能手机传感器的计步器的设计

By ali 作者简介:徐文力,男(汉族),硕士研究生,主要研究领域为智能及高级过程控制。 李明辉,男(汉族),教授,硕士研究生导师,主要研究领域为智能及高级过程控制。 基于MATLAB 和Android 智能手机传感器的计步器的设计 徐文力,李明辉 (陕西科技大学机电工程学院,陕西 西安710021) 摘 要:本文设计的是一种基于MATLAB 和Android 智能手机传感器的计步器,首先分析了人体运动时加速度的变化规律,通过手机传感器获取三维加速度值,然后由sensorudp APP 以UDP 数据包的形式通过无线网络发送给运行着MATLAB 软件的计算机,利用MATLAB 软件强大的科学计算功能对数据包进行解析得到加速度的值,并进行滤波和样条插值等处理,最后得出运动的步数,进而求出运动的距离以及能耗,为健康运动提供了判断依据。 关键词:智能手机;计步器;无线网络;滤波 中图分类号:TN91 文献标识码:B Design of pedometer based on MATLAB and the smartphone sensors Li ,Xu (College of Mechanical and Electrical Engineering ,Shaanxi University of Science & Technology ,xi ’an shaanxi 710021,China) ABSTRACT : This paper designs a pedometer based on MATLAB and the Android smartphones sensor. First analysis the change law of acceleration of the human body when people exercise, obtaining 3D acceleration through mobile phone sensor, and then send to the computer which running MATLAB software in the form of UDP packets through the wireless network by the sensorudp APP, and use the powerful MATLAB software to decode the packets to get the acceleration, and then execute the filter and spline interpolation, and get the number of steps , the distance and energy consumption, which can provide the basis to judge the movement. KEYWORDS : Smartphones; Pedometer; Wireless network; Filter; 0 引言 Android 智能手机自推出以来,其内置传感器逐渐增多,传感器所实现的功能也日益多样化,极大的满足了用户对智能手机功能的需求,从依赖于重力传感器的各种游戏,到依靠距离传感器实现的通话灭屏,再到指南针功能下的电子罗盘等等,小小的一个Android 智能手机以各种传感器为依托实现了许多有趣的功能。因此,手机已经不再是一个简单的通讯工具,而是具有综合功能的便携式的电子设备。在这种情况下,各种传感器在手机上的应用应运而生。本文就是利用Android 智能手机中的G-sensor 传感器,结合MATLAB 软件的强大计算功能,设计了一种计步器,通过对传感器数据进行分析处理得到运动的步数,进一步计算就可以得到运动速度、距离和能耗等数据。在全民健康意识普遍提高的背景下,各种运动器具变得炙手可热,而计步器的应用可有效辅助提高运动效果,达到健康运动的目的。 1 计步器原理 要实现检测步数首先要对人走路的姿态有一定了解。以步伐特征的研究为基础,考虑到

Android实验报告

Android实验报告 专业:计算机科学与技术 班级: 学号: 姓名:武易 2016年11月28日 实验一Activity 生命周期 一、实验目的 Android 生命周期是从程序启动到程序终止的过程。通过本次实验深入理解Android 系统管理生命周期的必要性,并以Activity 为例说明Android 系统是如何管理程序组件的生命周期。 二、实验设备 1、硬件设备系统类型:Win7 版本32 位,处理器: Intel(R)Core(TM)i3-2350M CPU @2.30GHz 2.30GHz 安装内存 (RAM):8.00GB 2、软件设备Win7 操作系统、Eclipse、JDK、Android SDK、ADT 三、实验内容 1、实验要求 观察Activity的生命周期。 2、详细设计 public class MainActivity extends ActionBarActivity {

private static String TAG="LIFECYCLE"; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); Log.i(TAG,"(1) onCreate()"); button.setOnClickListener(new View.OnClickListener(){ public void onClick(View view){ finish(); } }); } @Override public void onStart(){ super.onStart(); Log.i(TAG,"(2) onStart()"); } @Override public void onRestoreInstanceState(Bundle savedInstanceState){ super.onRestoreInstanceState(savedInstanceState); Log.i(TAG,"(3) onRestoreInstanceState()"); } @Override

Android重力传感器代码

所建立Android项目包的名称可自定义修改 //=============syx==============// package com.example.yidong; //==============================// import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.Window; import android.view.WindowManager; import android.widget.EditText; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; public class MainActivity extends Activity implements SensorEventListener { SensorManager sensorManager; EditText editText; EditText editText1; EditText editText2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.360docs.net/doc/c34772619.html,yout.activity_main); editText=(EditText)findViewById(R.id.editText1); editText1=(EditText)findViewById(R.id.editText2); editText2=(EditText)findViewById(R.id.editText3); //获取重力传感器服务 sensorManager=(SensorManager)getSystemService(MainActivity.this.SENSOR_SERVICE); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume();

相关文档
最新文档