ALFA
Dev工作室原创文章如转载,请注明:转载自博客原文地址:http://blog.csdn.net/kongre/article/details/6731129
每一部搭载Android智能操作系统的设备都具有一系列传感器的集合。其中最标准的两种传感器分别为Accelerometer Sensor(加速度计传感器)和Magnetometer Sensor(磁力计传感器)。当然Android设备当中还可能集中了其他类型的传感器,例如:Temperature Sensor(温度传感器),Proximity Sensor(距离临近传感器)等等其他类型的传感器。
一、Android 目前支持以下几种类型传感器:
二、怎么样获取当前设备某一特定类型传感器的列表(以Accelerometer Sensor为例)
public class SensorActivity extends Activity{
private static final String TAG = "SensorActivity";
//declare all ui widgets
Button getSpecifiedSensorListBtn;
private SensorManager sensorManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//create references to all ui widgets
getSpecifiedSensorListBtn = (Button)findViewById(R.id.firstTest);
//initialize the sensorManager
sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
getSpecifiedSensorListBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
List<Sensor> sensorList = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER);
//iterate the sensor list
for(Sensor sensor : sensorList){
Log.d(TAG, "the name of the sensor:" + sensor.getName() + "\t type:" +
((sensor.getType() == Sensor.TYPE_ACCELEROMETER) ? "ACCELEROMETER Sensor" :
"Other Sensor"));
}
}
});
}
}
控制台日志输出如下:
三、怎么样获取传感器当中的数据(例如:获取X,Y,Z轴的三个不同方向的加速度)
在介绍使用传感器事件监听器之前,我们先简单介绍一下SmartPhone的三维坐标系:
X-axis:水平方向的,正数值代表右边,负数值代表右边;
Y-axis:垂直方向的,正数值代表上边,负数值代表下边;
Z-axis:指向手机屏幕的前段界面的外边。
下面我们开始编写代码,获取不同方向的加速度的值:
public class SensorEventDemo extends Activity {
private SensorManager sensorManager;
//declare all ui widgets
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listen_accelerometer);
//create all references to ui widgets
tv= (TextView)findViewById(R.id.attitude);
sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
}
private final SensorEventListener sensorEventListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
tv.setText("x轴加速度:" + event.values[0] +
"\ny轴加速度:" + event.values[1] +
"\nz轴加速度:" + event.values[2]
);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
@Override
protected void onResume() {
sensorManager.registerListener(sensorEventListener,
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_UI);
super.onResume();
}
@Override
protected void onPause() {
sensorManager.unregisterListener(sensorEventListener);
super.onPause();
}
}
下面为真机运行显示结果:
最后如果你还是觉得我写的不够详细
看的不够爽 不要紧我把源代码的下载地址贴出来 欢迎大家一起讨论学习ALFA Dev工作室希望可以和大家一起进步。
下载地址:http://download.csdn.net/source/3559419
分享到:
相关推荐
Android Sensor 入门源码~~~~~~~~~~~~~~~~~~
Android sensor 入门级,from android 开发解密
Android传感器的入门知识,介绍了安桌内置支持的一些传感器种类,以及如何获得当前设置一些特定种类的传感器,和如何通过传感器事件监听器对数据进行监听和获取。
适于自学的Andorid传感器学习指南,基于Android 2.2、2.3.3及3.0版本讲解
目录 安卓基础 安卓案例 项目实战 最近开的新坑,和游戏开发相关的东西
《Android核心技术与实例详解》PPT Android HAL实例解析 ...Android入门之HelloWorld.pdf Android系统开发--HAL层开发基础(1).doc Android硬件驱动开发关键技术和HAL移植要领.pdf HAL_sensor模型分析.doc
SenSee(传感器数据收集器) 我们已将项目从 Eclipse 移植到以继续开发,因为 。 使用 Android Studio 的 SenSee 项目的存储库位于 。 开发人员没有更新此存储库... ,这是一个不断发展的文档,可帮助贡献者快速入门。
汲取专家经验,指引入门捷径。 移动网络设备(MID,Mobile Internet Device)的发展趋势锐不可当,其中以智能手机最受瞩目。 《Google Android SDK开发范例大全(第3版)》采用范例集的形式,由浅入深地带领Google ...
汲取专家经验,指引入门捷径。 移动网络设备(MID,Mobile Internet Device)的发展趋势锐不可当,其中以智能手机最受瞩目。 《Google Android SDK开发范例大全(第3版)》采用范例集的形式,由浅入深地带领Google ...
汲取专家经验,指引入门捷径。 移动网络设备(MID,Mobile Internet Device)的发展趋势锐不可当,其中以智能手机最受瞩目。 《Google Android SDK开发范例大全(第3版)》采用范例集的形式,由浅入深地带领Google ...
汲取专家经验,指引入门捷径。 移动网络设备(MID,Mobile Internet Device)的发展趋势锐不可当,其中以智能手机最受瞩目。 《Google Android SDK开发范例大全(第3版)》采用范例集的形式,由浅入深地带领Google ...
该示例使用演示了以下内容: 蓝牙其他蓝牙设备本地蓝牙适配器中已配对的蓝牙设备频道/套接字到远程设备通过蓝牙数据先决条件Android SDK 27 Android构建工具v27.0.2 Android支持存储库屏幕截图入门本示例使用Gradle...
React Native包装器,可访问iOS和Android的接近传感器的状态。 react-native-proximity和scrollview的用法。 入门 安装库 npm install --save react-native-proximity 链接图书馆 react-native link react-native-...