- 浏览: 127155 次
文章分类
- 全部博客 (121)
- confluence (1)
- android (77)
- PHP (6)
- java (21)
- mysql (3)
- dos (1)
- 传感器 (2)
- 获取电话薄信息 (3)
- 正则表达式 (1)
- 网络 (1)
- 蓝牙 (1)
- 图片 (4)
- intent (3)
- 注意 (1)
- eclipce (1)
- plugins (1)
- dialog (4)
- zip (1)
- sd卡 (1)
- ui (1)
- Camera (1)
- draw (1)
- activity (2)
- launchMode (1)
- 安全 (1)
- Button (1)
- ImageTextButton (1)
- paint (1)
- network (1)
- popupwindow (1)
- jquery (1)
- ant (1)
- notifaction (1)
- Rating (1)
- ListView (3)
- editText (1)
- doc (1)
- jdk (1)
- animation (1)
- sign (1)
- 签名 (1)
- 广播 (1)
- textview (4)
- 删除线 (1)
- 城市列表 (1)
- IDE (1)
- Eclipse (1)
- pixels (2)
- px (1)
- 静默安装 (1)
- Android截屏 (1)
- eclipcetheme (1)
- scroll (1)
- ActivityGroup (1)
- sqlite (1)
- webview (3)
- PullToRefreshListView (1)
- cache (1)
- java引用 (1)
- 命名空间 (1)
- httpClient (1)
- 开源控件 (0)
- sms (1)
- 文字水平滚动 (1)
- 正则 (1)
- 理论知识 (1)
- 属性 (0)
- openfire (1)
- 面试 (1)
- 继承的优缺点 (1)
- PowerDesigner (1)
- 数字格式化 (1)
- andriod (1)
- webservice (1)
- 记录 (0)
- share (0)
- 开源 (1)
最新评论
分享地址:http://www.androidegg.com/portal.php?mod=view&aid=578
1.1 序言
【Android蛋蛋网】在这一章我们主要针对Android的传感器(Sensor)进行说明。如果说Java的程序和硬件有些远的感觉,那么可以说传感器距离硬件很近。传感器(Sensor)听起来似乎感觉很难,其实它并不是很难。做起来并很有意思的,我相信,通过我对传感器的介绍你会对它感兴趣的,应为你可以切身体会到它的存在。
1.2 传感器(Sensor)是什么?
传感器是能标识温度,加速度等等物理现象的转换电子信号的机器。Android SDK,在移动设备中提供了各种各样的传感器的API。那么,本章的例程,在模拟器中不能使用,这点请大家注意。需要在实际的手机上测试才能体现。这里我就不进行详细进行说明如何连接手机进行运行程序了,在本网站 【Android蛋蛋网】有对应的介绍,请读者自己参照。
1.3 传感器(Sensor)关联的类(Class)和接口(Interface)
首先,我们对Android SDK提供的传感器关联的类和接口进行介绍。
1.3.1 android.hardware.Sensor类
Sensor类,是管理各种传感器的共同属性(名字,版本等等)的类。
●主要的常量
在Sensor类,能使用的传感器的种类通过常量来定义的(表1-1)。但是根据硬件,传感器搭载是任意的。比如现在市场销售的(Dev Phone,HTC Dream)实际确认有
TYPE_ACCELEROMETER,
TYPE_ORIENTATION,
TYPE_MAGNETIC_FIELD,
TYPE_TEMPERATURE
四种类别。
表1-1 传感器的种类
常量名
|
说明
|
实际的值
|
TYPE_ACCELEROMETER
|
加速度
|
1
|
TYPE_GYROSCOPE
|
陀螺仪
|
4
|
TYPE_LIGHT
|
光照
|
5
|
TYPE_MAGNETIC_FIELD
|
磁力计
|
2
|
TYPE_ORIENTATION
|
方位传感器
|
3
|
TYPE_PRESSURE
|
压力传感器
|
6
|
TYPE_PROXIMITY
|
距离传感器
|
8
|
TYPE_TEMPERATURE
|
温度传感器
|
7
|
TYPE_ALL
|
全部的传感器 |
-1
|
●主要的方法
Sensor类的主要的方法参照下面的表1-2
方法
|
处理内容
|
public float getMaximumRange()
|
返回传感器的最大值
|
public String getName()
|
返回传感器的名字
|
public float getPower()
|
f返回传感器的功率(mA毫安) |
public float getResolution()
|
返回传感器的精度
|
public int getType()
|
返回传感器的类型
|
public String getVentor()
|
返回Vendor名
|
public int getVersion()
|
返回传感器的版本号 |
1.3.2 android.hardware.SensorManager类
SensorManager类是对搭载的移动设备的传感器进行访问的类,用这个类的借口能取得事件监听器的登录/删除、传感器的信息。
●主要的常量
在SensorManager有很多个常量被定义,但是这些中最重要的是关于传感器的反应速度的,如(表1-3)。Android,在监听器进行登录的时候通过4个阶段对传感器进行设定的。
表1-3 关于传感器的反映速度的常量
常量名
|
说明
|
实际的值
|
SENSOR_DELAY_FASTEST
|
在游戏想特别快的反应速度的时候使用
|
0
|
SENSOR_DELAY_GAME
|
游戏用
|
1
|
SENSOR_DELAY_UI
|
用户接口用
|
2
|
SENSOR_DELAY_NORMAL
|
取得倾斜度的时候使用(缺省)
|
3
|
●主要的方法
SensorManager类的主要方法如表1-4所示
表1-4 SensorManager类的主要方法
方法
|
处理内容
|
public boolean registerListener(
SensorEventListener listener, Sensor sensor, int rate) |
登录被指定反应速度的监听器。反应速度的指定,使用前面的(表1-3)的SENSOR_DELAY系列常量 |
public void unregisterListener(SensorEventListener listener)
|
解除全部的传感器的监听器的登录
|
public void unregisterListener(SensorEventListener listener,
Sensor sensor) |
解除在sensor被指定的监听器的登录 |
public List getSensorLIst(int type)
|
用list形式取得能使用的传感器的接口
|
1.3.3 SensorManager类的Instance取得例程
SensorManager不能直接生成Instance。SensorManager的Instance是通过Context类定义的getSystemService方法取得的。在图1-1的Activity,SensorManager的Instance取得,传感器的名字取得,具体代码如下。
图1-1 传感器的信息取得例程
AndroidEggSensorActivity.java
package androidegg.stu.sensor;
import java.util.List;
import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;
public class AndroidEggSensorActivity extends Activity implements SensorEventListener{
/** Called when the activity is first created. */
//SensorManager instance
private SensorManager sensorManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//get SensorManager instance
sensorManager = (SensorManager)this.getSystemService(SENSOR_SERVICE);
setContentView(R.layout.main);
}
@Override
protected void onResume(){
super.onResume();
List<Sensor> sensors = sensorManager.getSensorList(Sensor.TYPE_ALL);
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
TextView tv;
for (Sensor s:sensors){
tv = new TextView(this);
tv.setText(s.getName());
layout.addView(tv,new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
}
setContentView(layout);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
}
}
重要点如下所示
1 在onCreate 方法中取得SensorManager的Instance
2 在onResume 方法中取得传感器的名字
发表评论
-
使用Android进行分享
2014-04-21 14:22 01.简单的分享文本 Intent sendIntent = ... -
android:descendantFocusability用法简析
2013-11-25 10:11 0开发中很常见的一个问题,项目中的listview不 ... -
Android 的应用程序的优先级和进程状态
2013-11-04 12:29 2237回收资源的时候,进 ... -
去掉listview顶部和底部阴影(高光部分)
2013-11-13 11:04 695/** * 去掉listview顶部和底部阴影(高光 ... -
Android的5个进程等级 .
2013-10-22 17:00 689来自:http://blog.csdn.net/ ... -
使用TextView 使用文字水平滚动
2013-09-26 15:12 642/** * * <b>功能名:< ... -
SMS研究(转)记录地址
2013-09-22 15:20 717拦截短信 作者:bingzhi更新于 07月26日访问(70 ... -
ListView 隐藏滚动条及基本属性
2013-09-09 22:25 1268由于这两天在做listView的东西,所以整理出来一些我个 ... -
android 编辑框过滤文本
2013-09-05 13:48 551public class EditOnKeyListener ... -
HttpClient The target server failed to respond
2013-09-04 17:50 14852关于HttpClient 出现 The target ser ... -
android webview的三种加载方式
2013-08-28 17:20 566//打开本包内asset目录下的index.html文件 ... -
TextView的一些高级显示
2013-08-20 10:41 4311. 自定义字体可 ... -
命名空间
2013-08-19 18:18 7561.需要在AndroidManifest.xml添加自己的 ... -
java 4种引用
2013-08-16 09:20 7101.强引用本章前文介绍的引用实际上都是强引用,这是使用最普遍 ... -
清除 webView 存在的缓存!
2013-08-15 17:27 785CookieSyncManager.createInstan ... -
使用 PullToRefreshListView 分页问题.
2013-08-15 12:05 2280使用PullToRefreshListView分页刷新问题, ... -
清除webview产生的缓存
2013-08-15 10:03 1546/** * 删除应用缓存(/data/data/包名/ ... -
读取assets或者raw目录下的sqlite数据库
2013-08-14 17:46 986public class DbManager { pr ... -
使用 ActivityGroup 加载多个Activity
2013-08-14 15:13 6911.mTabClassArray 数组中存放的是Activi ... -
监听 ScrollView 滑动到底部
2013-08-13 15:52 9451.给ScrollView添加 OnTouchListene ...
相关推荐
本教程将深入探讨如何使用Android的Sensor API来处理加速度传感器数据,并通过一个具体的“摇一摇”(Shake)实例来展示其实现过程。 首先,我们需要了解加速度传感器的基本概念。加速度传感器能够测量设备在三维...
本章节将深入探讨Android传感器编程的相关知识点。 #### 二、Android传感器的基础概念 Android SDK 提供了一系列与硬件交互的功能,其中包括传感器管理。这些功能使得开发者能够创建出更加智能和响应式的应用。...
在Android平台上,Sensor.TYPE_ACCELEROMETER是用于访问设备内置的加速度传感器的关键常量。这个传感器能够检测到设备在三维空间中的线性加速度,包括由于地球引力引起的加速度和用户对设备施加的动态加速度。在移动...
Android-Orientation-Sensor是一个专为Android平台设计的开源库,其主要目的是利用设备上所有可用的传感器来提供更准确的定向矢量值。在Android系统中,传感器是获取设备环境变化的重要工具,如设备的旋转、倾斜、加...
本实例,"Android实例之OrientationSensor方向传感器",将深入讲解如何在Delphi环境下利用Android的传感器API来实现这一功能。朱建强作为作者,他的作品通常以实用性和易用性为特点,你可以放心下载并根据自己的需求...
《Android传感器高级编程》是专为开发者深入理解并掌握Android平台上的传感器技术而编写的一本专业书籍。在Android系统中,传感器是设备与环境交互的关键组件,它们收集各种物理和环境数据,如加速度、陀螺仪、磁力...
一、Android传感器基础 1. SensorManager:这是Android SDK中的核心类,用于管理和访问设备上的传感器。通过`Context.getSystemService(Context.SENSOR_SERVICE)`可以获取到SensorManager实例。 2. Sensor:Sensor...
在项目"ALLSensor"中,开发者可能已经包含了完整的实现,包括对各种传感器的测试和数据展示,这为学习和实践Android传感器API提供了一个很好的起点。通过分析和运行这个项目,你可以更深入地了解如何在实际应用中...
Android传感器系统架构主要由四个层次构成: - **底层驱动层**:这是最基础的部分,包含标准Linux内核、Android核心驱动、特定设备驱动,其中G-sensor的驱动程序就位于这一层。这些驱动程序与硬件直接交互,为...
"Android传感器应用实例"是一个专为学习Android传感器开发而设计的项目,通过两个具体的Activity,深入浅出地展示了如何利用Android的传感器API。 第一个Activity的主要目标是展示手机中的传感器数量和类型。在...
在Android中,我们可以通过`SensorManager`的`getDefaultSensor(Sensor.TYPE_ACCELEROMETER)`方法获取加速度传感器,并注册监听器来接收实时的加速度数据。 **方位传感器** 方位传感器,通常称为陀螺仪或磁力计,...
Android传感器校准是一个重要的过程,对于确保设备提供准确、可靠的环境感知至关重要。开发者可以利用Android SDK提供的工具和API,结合适当的校准算法,创建自己的校准解决方案。同时,用户也可以通过执行特定的...
总的来说,这份“android传感器高级编程源码+apk”涵盖了Android传感器API的使用、数据处理和应用开发等多个方面,对于希望提升Android传感器编程能力的开发者来说,是一份宝贵的参考资料。通过研究源码,我们可以...
在Android操作系统中,Sensor框架是核心组件之一,它允许开发者访问和处理设备的各种传感器数据,如加速度计、陀螺仪、磁力计等。"sensor测试apk.zip"这个压缩包显然包含了两个APK文件,即SensorSense_jb51.apk和...
一、Android传感器框架 Android提供了一个强大的传感器框架,它允许开发者访问设备上的各种传感器,通过`SensorManager`服务进行管理。首先,你需要在应用程序中获取`SensorManager`实例: ```java SensorManager ...
在Android平台上,我们可以利用内置的Sensor服务来创建各种有趣的应用,比如本文提到的水平仪功能。...这个过程不仅展示了Android的传感器API的强大,也体现了Android应用程序开发的灵活性和可扩展性。