全部评论(1条)
-
- 麦民邈 2016-01-25 00:00:00
- Android 是面向智能手机和其他便携式设备的Z受欢迎的操作系统(OS)之一。它为多种传感器提供了标准的API 接口,包括加速度计。加速度计的标准API 定义了原始加速度数据的坐标系统。用户必须将从传感器中读取的原始数据转换为标准单位,并使其符合系统定义的坐标方向。本文介绍了Android 中的坐标系统是如何定义的,以及如何在Android 系统的驱动代码中对3 轴加速度计数据的方向和坐标进行转换。本文讨论的示例代码基于飞思卡尔的Android 2.2 和2.3 驱动程序,加速度计则以飞思卡尔的MMA8452Q 加速度传感器为例。 关键词:加速度计,传感器驱动,Android 一部智能手机或便携设备应具有Wi-Fi 和互联网功能,能够运行应用软件等诸多特征,而且一定会具有内置传感器。高端智能手机可能集成接近传感器,环境光传感器,3 轴加速度计,以及磁力计等多种传感器。 Android 2.3 添加了一些支持多种新型传感器的API,包括陀螺仪、旋转向量、线性加速度、重力和气压传感器等。应用软件可以使用这些新型传感器,将它们组合起来,就可以实现高精确度的高级运动检测功能。 3 轴加速度计或低g 值传感器是Android API 支持的传感器之一,具有特定的坐标系统,可以给应用程序提供标准的接口数据。坐标空间的定义与手机屏幕的默认方向有关
-
赞(20)
回复(0)
热门问答
- android加速度传感器怎么使用
2016-01-24 01:01:46
299
1
- android加速度传感器怎么使用
2016-05-24 22:15:02
303
1
- android加速度传感器怎么使用
2018-12-03 13:05:50
314
0
- android加速度传感器怎么去除重力的影响
2016-07-03 15:29:31
210
1
- android加速度传感器去除重力影响
- 这是android developer网站提供的方法 public void onSensorChanged(SensorEvent event) { // alpha is calculated as t / (t + dT) // with t, the low-pass filter's time-constant // and dT, the event delivery... 这是android developer网站提供的方法 public void onSensorChanged(SensorEvent event) { // alpha is calculated as t / (t + dT) // with t, the low-pass filter's time-constant // and dT, the event delivery rate final float alpha = 0.8; gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0]; gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1]; gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2]; linear_acceleration[0] = event.values[0] - gravity[0]; linear_acceleration[1] = event.values[1] - gravity[1]; linear_acceleration[2] = event.values[2] - gravity[2]; } 请高手解释下,还有这个gravity初始值是多少,不能理解啊,不应该根据角度关系将重力分解到各个轴,再计算吗? 展开
2013-08-22 00:54:14
381
6
- 如何使用加速度传感器在Android智能手机找到位移距离是多少
2018-12-03 12:04:24
278
0
- 如何使用加速度传感器在Android智能手机找到位移距离是多少
2018-11-15 05:12:09
331
0
- android获取加速度传感器的程序问题
- 我现在想获取手机中的加速度传感器的变化值,并将它存入txt文档中,程序应该不难,但是我写出来发现文件穿件不出来,不知道哪里出问题了求高手指点代码如下:packagecom.example.gets... 我现在想获取手机中的加速度传感器的变化值,并将它存入txt文档中,程序应该不难,但是我写出来发现文件穿件不出来,不知道哪里出问题了 求高手指点 代码如下 : package com.example.getsensorvalue; import java.io.*; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { private SensorManager Sm; private String a=""; private String b=""; private TextView TV1; private Button Button1; private Button Button2; private File fos=null; private Writer out=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TV1=(TextView)findViewById(R.id.TV1); Button1=(Button)findViewById(R.id.Button1); Button1.setText(R.string.Button1); Button2=(Button)findViewById(R.id.Button2); Button2.setText(R.string.Button2); Sm=(SensorManager)getSystemService(SENSOR_SERVICE); Sensor Accelerate=Sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); Sm.registerListener(new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { // TODO Auto-generated method stub b=b+event.values[0]+" "+event.values[1]+" "+event.values[2]+"\n"; a=event.values[0]+" "+event.values[1]+" "+event.values[2]+"\n"; TV1.setText(a); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub } }, Accelerate,SensorManager.SENSOR_DELAY_NORMAL); Button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub b=""; } }); Button2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub try{ fos=new File(Environment.getExternalStorageDirectory().getPath() +"accelerate.txt"); fos.delete(); fos.createNewFile(); out=new FileWriter(fos); out.write(b); out.close(); } catch(Exception e){ System.out.println(e); } } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. menu.add(0,1,1,R.string.exit); getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onContextItemSelected(MenuItem item) { // TODO Auto-generated method stub if(item.getItemId()==1){ finish(); } return super.onContextItemSelected(item); } } 展开
2017-06-30 01:41:58
365
1
- android 分解加速度传感器数值,过滤掉重力加速度
- 已知android 加速度传感器和方向传感器的,想将加速度传感器参数分解,过滤掉重力加速度,求实际的加速度是多少,有点难,求大神,加分
2018-12-01 20:44:16
302
0
- android lottie 怎么在eclipse上使用
2018-11-18 21:15:35
301
0
- android加速度传感器类型TYPE_LINEAR_ACCELERATION、 TYPE_ACCELEROMETER有什么区别?
2018-12-06 22:29:00
274
0
- 求大神分享[Android开发视频教程]05_04_加速度传感器的使用种子下载,谢谢
2013-10-16 13:52:27
313
1
- Android studio怎么创建Android虚拟机
2017-08-24 07:28:11
389
3
- Android studio怎么管理Android虚拟机
2017-08-10 16:52:30
208
2
- [Android开发] SensorEvent,加速度传感器如何消除重力影响
- 下图截自:http://developer.android.com/reference/android/hardware/SensorEvent.html 滑条下拉3分之一处 我想要做到: 取出加速度传感器的3轴的值,并且对这3个值消除重力加速度的影响,Z终求出线性加速度。 问题1: 此监听函数里面的gravity[] 这个数组... 下图截自:http://developer.android.com/reference/android/hardware/SensorEvent.html 滑条下拉3分之一处 我想要做到: 取出加速度传感器的3轴的值,并且对这3个值消除重力加速度的影响,Z终求出线性加速度。 问题1: 此监听函数里面的gravity[] 这个数组是什么? 从哪里可以获取? 难道在本Class里面再创建一个SensorManager对象 sensor2,sensorType 为 Gravity? 并注册sensor2.registerListener 监听? 问题2: 接着问题1,这样我就注册了两个监听,一个Accelerator加速度传感器监听和Gravity重力监听。 那么onSensorChanged()这个监听函数中的 event.values[] 究竟是accelerator 的,还是gravity的? 展开
2018-11-15 08:58:30
316
0
- android模拟器,是否能模拟出加速度传感器的变化
- RTeclips上面的AVD是否能模拟加速度变化
2013-10-20 14:34:45
234
1
- Android中的加速度传感器能用来测速度吗
- 有对加速度积分的应用吗,或者还可以读出位移
2013-06-12 11:52:09
302
1
- android toc怎么生成
2016-10-28 18:24:35
342
1
- android toc 怎么生成
2016-10-24 02:03:30
330
1
- android toc 怎么生成
2018-12-10 01:19:24
240
0
10月突出贡献榜
推荐主页
最新话题
参与评论
登录后参与评论