Android重力传感器代码

Android重力传感器代码
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/473198898.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();

//注册加速度传感器监听器

sensorManager.registerListener(this,

sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);

}

@Override

protected void onStop() {

// TODO Auto-generated method stub

super.onStop();

sensorManager.unregisterListener(this);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

@Override

public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub

}

//当参数值改变时调用此函数

@Override

public void onSensorChanged(SensorEvent event) {

// TODO Auto-generated method stub

float[] values=event.values;

StringBuilder sb=new StringBuilder();

StringBuilder sb1=new StringBuilder();

StringBuilder sb2=new StringBuilder();

sb.append("X的加速度=");

sb.append(values[0]+"\n");

sb1.append("Y的加速度=");

sb1.append(values[1]+"\n");

sb2.append("z的加速度=");

sb2.append(values[2]+"\n");

editText.setText(sb.toString());

editText1.setText(sb1.toString());

editText2.setText(sb2.toString());

}

}

基于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 studio 控件常用属性

android studio 控件常用属性 下面是RelativeLayout各个属性 1.android:layout_above="@id/xxx" --将控件置于给定ID控件之上 2.android:layout_below="@id/xxx" --将控件置于给定ID控件之下 3. android:layout_toLeftOf="@id/xxx" --将控件的右边缘和给定ID控件的左边缘对齐 4.android:layout_toRightOf="@id/xxx" --将控件的左边缘和给定ID控件的右边缘对齐 5. android:layout_alignLeft="@id/xxx" --将控件的左边缘和给定ID控件的左边缘对齐 6.android:layout_alignTop="@id/xxx" --将控件的上边缘和给定ID控件的上边缘对齐 7.android:layout_alignRight="@id/xxx" --将控件的右边缘和给定ID控件的右边缘对齐 8.android:layout_alignBottom="@id/xxx" --将控件的底边缘和给定ID控件的底边缘对齐 9.android:layout_alignParentLeft="true" --将控件的左边缘和父控件的左边缘对齐 10. android:layout_alignParentTop="true" --将控件的上边缘和父控件的上边缘对齐 11. android:layout_alignParentRight="true" --将控件的右边缘和父控件的右边缘对齐 12.android:layout_alignParentBottom="true" --将控件的底边缘和父控件的底边缘对齐 13.android:layout_centerInParent="true" --将控件置于父控件的中心位置 14.android:layout_centerHorizontal="true" --将控件置于水平方向的中心位置 15.android:layout_centerVertical="true" --将控件置于垂直方向的中心位置 android:layout_width 设置组件的宽度 android:layout_height 设置组件的高度 android:id 给组件定义一个id值,供后期使用 android:background 设置组件的背景颜色或背景图片 android:text 设置组件的显示文字 android:textColor 设置组件的显示文字的颜色 android:layout_below 组件在参考组件的下面 android:alignTop 同指定组件的顶平行

基于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界面开发之常用系统控件界面大合集

今天我用自己写的一个Demo 和大家详细介绍一个Android开发中遇到的一些常用系统控件的使用技巧。 1.文本框TextView TextView的作用是用来显示一个文本框,下面我用两种方式为大家呈现TextView,第一种是通过xml布局文件

呈现,第二种是通过代码来呈现,由此可见Android 的界面开发真的是非常灵活。 view plaincopy to clipboardprint? 1. public class TextViewActivity extends Activity { 2. @Override 3. protected void onCreate(Bundle savedInstanceState) { 4. setContentView(https://www.360docs.net/doc/473198898.html,yout.textview);

5. 6. LinearLayout ll = (LinearLayout) findViewById(R.id.textviewll); 7. TextView textView = new TextView(this); 8. //设置显示文字 9. textView.setText("从代码中添加一个TextView"); 10. //设置显示颜色 11. textView.setTextColor(Color.WHITE); 12. //设置显示字体大小 13. textView.setTextSize(18); 14. //设置显示背景颜色 15. textView.setBackgroundColor(Color.BLUE); 16. //设置锚点位置 17. textView.setGravity(Gravity.CENTER_VERTICAL|Gravity.CE NTER_HORIZONTAL); 18. //把这个view加入到布局当中 19. ll.addView(textView); 20. 21. super.onCreate(savedInstanceState); 22. } 23. } 1. 2.

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简介和容器控件)

Android开发日志—常用控件篇(容器控件) android简介: Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。 Android的系统架构和其操作系统一样,采用了分层的架构。 Android结构 从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。 隐藏在每个应用后面的是一系列的服务和系统, 其中包括; 丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(Lists),网格(Grids),文本框(Text boxes),按钮(Buttons),甚至可嵌入的web 浏览器。 内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据 资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件(Layout files )。 通知管理器(Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。 Android开发四大组件分别是:活动(Activity):用于表现功能。服务(Service):后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(Content Provider):支持在多个应用中存储和读取数据,相当于数据库。 活动(当前界面视图):

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基础应用》 Android常用控件 ?本章任务 ?使用Android开发使用时间组件 ?使用Android开发使用进度条组件 ?使用Android开发创建底部选项卡 ?本章目标 ?了解Android的组件层次结构 ?掌握常用的日期时间类控件 ?掌握常用的几个容器组件 1.Android组件的层次结构 UI组件都是View的子类,View有很多子类,它们之间存在树状的继承关系View及其子类结构图

TextView及其子类结构图

ViewGroup及其子类结构图 其下的子类一般作为容器或布局来使用 FrameLayout及其子类结构图 其下的子类通常作为容器或布局来使用

2.时间控件 2.1日期时间选择器 DatePicker组件可用于输入日期,TimePicker组件可用来选择时间,只能输入小时和分,默认12小时制 DatePicker ●使用onDateChangedListener监听器来获取用户的日期选择 ●使用init对组件进行初始化 ●使用getYear,getMonth,getDayOfMonth方法获得用户选择的年,月,日 TimePicker ●使用onTimeChangedListener监听器获取用户的时间选择 ●使用setIs24HourView设置是否以24小时制显示 ●使用getCurrentHour获得当前的小时数 ●使用getCurrentMinute获得当前的分钟数 示例

示例的实现结果

2.2时钟组件 AnalogClock组件用来以表盘的方式显示当前时间,该表只有时针和分针,DigitClock组件以数字的方式显示当前时间可以显示时分秒,由于DigitClock继承TextView,可以使用TextView 的属性 示例

基于Android手机多传感器的老人跌倒检测技术研究与实现

电子设计工程 Electronic Design Engineering 第24卷Vol.24第14期No.142016年7月Jul.2016 收稿日期:2015-08-15 稿件编号:201508083 基金项目:华中师范大学2014年大学生创新创业训练计划立项A 类项目(A2014057)作者简介:程一风(1994—),男,湖北武汉人。研究方向:通信。 随着中国人口老龄化程度的加深,老年人的健康安全监护问题成为了一个巨大的社会难题。由于身体机能衰退等原因,老年人的生活自理能力逐步下降,难免遭受一些意外伤害,其中跌倒问题显得尤为突出。调查显示,意外跌倒成为了老年人健康的“头号杀手”,它会给老人的身心带来巨大的伤害,若是救治不及时,不仅会大大加深伤害程度,甚至有可能危及生命。因此,研究老人跌倒检测问题具有非常重要的社会意义。 现有的跌倒检测系统主要包括基于图像的检测系统、基于声频信号的分析、基于穿戴式的装置检测。基于图像的检测方法由摄像头对老人的运动实时监测,其准确度较高,但不足之处在于不能保证用户的隐私。基于声频信号的监测装置安装比较复杂,资金投入也比较大。基于穿戴式的装置检测对于老年人的限制最小,精度也较高。但还是存在一些问题,例如老人需要佩戴特殊的检测装置,但在日常生活中老人很难保证随时佩戴,导致检测效果大打折扣。并且目前大部分的穿戴检测装置需要使用者以固定方向佩戴在固定位置(如腰部),这或多或少会影响到老人的日常活动。 因此,本文提出一种新型可穿戴式检测方法。以智能手机作为载体,利用手机中集成的三轴加速度传感器和气压计,通过阈值判断实现跌倒检测。该方法有如下优点: 1)用户仅需携带手机便能进行跌倒检测,无需携带额外 的检测设备,大大降低了对老人日常生活的影响。 2)引入气压计进行联合判断能有效减小误报率。生活中 一些如跑步、起立等行为的加速度变化特征与跌倒相似,若单独采用加速度传感器检测跌倒,在进行这类活动时可能会引起误报。引入气压计检测跌倒时海拔高度的变化,能有效排除以上相似行为误报的可能性,从而更进一步降低误报率。 3)无需固定手机放置的位置与方向。现有的一些检测设 备通过检测跌倒时人体方向的变化实现判别,而本文中提出的方法无需依赖角度的变化,因此对手机放置的方位没有限制。 1 基于智能手机多传感器的跌倒检测方法 1.1 传感类型和数据预处理 本设计利用智能手机本身集成的加速度传感器和气压 基于Android 手机多传感器的老人跌倒检测技术研究与 实现 程一风,李达,张翔晨 (华中师范大学湖北武汉430079) 摘要:为了减少因跌倒后救治不及时给老人身心带来的伤害,文中提出了一种基于Android 手机多传感器的跌倒检测方法。利用三轴加速度传感器和气压计,检测跌倒时加速度和海拔高度的变化特征,实现跌倒判定。同时考虑到不同体格特征的人群身高、体重、年龄等的差异,文中引入了合理的阈值调节机制。并且,文中基于此方法在Android 智能手机平台上设计实现了跌倒检测系统,实验结果表明该系统的检测准确率86%。关键词:跌倒检测;Android ;三轴加速度传感器;气压计中图分类号:TN929.53 文献标识码:A 文章编号:1674-6236(2016)14-0181-03 Research and implementation of fall detection based on Android phone CHENG Yi -feng ,LI Da ,ZHANG Xiang -chen (Central China Normal University ,Wuhan 430079,China ) Abstract:Aiming at avoiding the sever injury caused by elders falling down without prompt treatment ,this paper develops a method of falling -down detection system based on multisensor in Android phones.This system utilizes three -axis accelerometer and barometer to detect the changes of acceleration and altitude to determine whether a falling down accident has occurred.Taking it into consideration that different individuals differ in bodily features like height ,weight and age ,This paper introduces a reasonable threshold adjusted mechanism.It also reveals that the system has been implemented on the Android smart phone platform with experimental results ’showing that the detection accuracy of the system is 86%.Key words:fall detection ;the Android platform application ;three -axis accelerometer ;barometer -181-

android常用控件大全

android常用控件大全 在Android中使用各种控件(View) DatePicker-日期选择控件 TimePicker-时间选择控件 ToggleButton-双状态按钮控件 EditText-可编辑文本控件 ProgressBar-进度条控件 SeekBar-可拖动的进度条控件 AutoCompleteTextView-支持自动完成功能的可编辑文本控件 MultiAutoCompleteTextView-支持自动完成功能的可编辑文本控件,允许输入多值(多值之间会自动地用指定的分隔符分开) ZoomControls-放大/缩小按钮控件 Include-整合控件 VideoView-视频播放控件 WebView-浏览器控件 RatingBar-评分控件 Tab-选项卡控件 Spinner-下拉框控件 Chronometer-计时器控件 ScrollView-滚动条控件 在Android中使用的Layout FrameLayout:里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角 LinearLayout:里面可以放多个控件,但是一行只能放一个控件

TableLayout:这个要和TableRow配合使用,很像html里面的table AbsoluteLayout:里面可以放多个控件,并且可以自己定义控件的x,y的位置 RelativeLayout:里面可以放多个控件,不过控件的位置都是相对位置 (Android界面布局好像还可以直接引用一些view,如ScrollView等) 常用控件: 1,EditText 主要函数:setText/getText设置/获取文本内容,setHint设置缺省显示内容; 2,RadioGroup,RadioButton RadioButton的isChecked()判断是否被选中 获取选中RadioButon的ID:设置 RadioGroup.setOnCheckedChangeListener方法 publiconCheckedChanged(RadioGroupgroup,intcheckedId)//checkedId 是选中RadioButton的ID 3,CheckBox isChecked()判断是否被选中 setOnCheckedChangeListener方法监视选中状态改变情况 4,Spinner a,显示数据 1),硬编码加载 通过setAdapter方法设置类型为 ArrayAdapter(Contextcontext,inttextViewResId,String[]objects) textViewResourceId:显示内容的ViewID默认设置为 https://www.360docs.net/doc/473198898.html,yout.simple_spinner_item

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

基于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基本控件实验 【目的】 熟悉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类型)

相关文档
最新文档