仪器网(yiqi.com)欢迎您!

| 注册登录
网站首页-资讯-专题- 微头条-话题-产品- 品牌库-搜索-供应商- 展会-招标-采购- 社区-知识-技术-资料库-方案-产品库- 视频

问答社区

android加速度传感器怎么使用

775452786 2016-05-24 22:15:02 307  浏览
  •  

参与评论

全部评论(1条)

  • 一径梅苔 2016-05-25 00:00:00
    一 介绍Sensor类 SDK只有一句介绍“Class representing a sensor. Use getSensorList(int) to get the list of available Sensors.”,表示一个感应器的类,可以使用getSensorList方法(此方法属于接下来要讲的SensorManager)获得所有可用的感应器,该方法返回的是一个List<Sensor> 下面的列表显示了,Sensor所提供的所有服务 ---------------------------------------------------------------------------------------------------------------------------------------------------------- Constants int TYPE_ACCELEROMETER A constant describing an accelerometer sensor type. //三轴加速度感应器 返回三个坐标轴的加速度 单位m/s2 int TYPE_ALL A constant describing all sensor types. //用于列出所有感应器 int TYPE_GRAVITY A constant describing a gravity sensor type. //重力感应器 int TYPE_GYROSCOPE A constant describing a gyroscope sensor type //陀螺仪 可判断方向 返回三个坐标轴上的角度 int TYPE_LIGHT A constant describing an light sensor type. //光线感应器 单位 lux 勒克斯 int TYPE_LINEAR_ACCELERATION A constant describing a linear acceleration sensor type. //线性加速度 int TYPE_MAGNETIC_FIELD A constant describing a magnetic field sensor type. //磁场感应 返回三个坐标轴的数值 微特斯拉 int TYPE_ORIENTATION This constant is deprecated. use SensorManager.getOrientation() instead. //方向感应器 已过时 可以使用方法获得 int TYPE_PRESSURE A constant describing a pressure sensor type //压力感应器 单位 千帕斯卡 int TYPE_PROXIMITY A constant describing an proximity sensor type. //距离传感器 int TYPE_ROTATION_VECTOR A constant describing a rotation vector sensor type. //翻转传感器 int TYPE_TEMPERATURE A constant describing a temperature sensor type //温度传感器 单位 摄氏度 ---------------------------------------------------------------------------------------------------------------------------------------------------------- 此类中包含的方法都是get型的 用来获取所选sensor的一些属性,sensor类一般不需要new而是通过SensorManager的方法获得 二 介绍SensorManager类 SDK解释:“SensorManager lets you access the device's sensors. Get an instance of this class by calling Context.getSystemService() with the argument SENSOR_SERVICE. Always make sure to disable sensors you don't need, especially when your activity is paused. Failing to do so can drain the battery in just a few hours. Note that the system will not disable sensors automatically when the screen turns off. ” SensorManager 允许你访问设备的感应器。通过传入参数SENSOR_SERVICE参数调用Context.getSystemService方法可以获得一个sensor的实例。永远记得确保当你不需要的时候,特别是Activity暂定的时候,要关闭感应器。忽略这一点肯能导致几个小时就耗尽电池,注意当屏幕关闭时,系统不会自动关闭感应器。 三 常用的感应器 (1) 加速度感应器 可以通过这个感应器获得三个浮点型 x-axis y-axis z-axis X Y Z分别对应values[0]到[2] X表示左右移动的加速度 Y表示前后移动的加速度 Z表示垂直方向的加速度 下面先看一个基本的获取加速的demo,希望大家好好注意代码中的注释 做的很简单,就是在屏幕上显示三个方向上加速度的值

    赞(6)

    回复(0)

    评论

获取验证码
我已经阅读并接受《仪器网服务协议》

热门问答

android加速度传感器怎么使用
 
2018-12-03 13:05:50 320 0
android加速度传感器怎么使用
 
2016-05-24 22:15:02 307 1
android加速度传感器怎么使用
 
2016-01-24 01:01:46 301 1
android加速度传感器怎么去除重力的影响
 
2016-07-03 15:29:31 214 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 385 6
如何使用加速度传感器在Android智能手机找到位移距离是多少
 
2018-11-15 05:12:09 335 0
如何使用加速度传感器在Android智能手机找到位移距离是多少
 
2018-12-03 12:04:24 282 0
android 分解加速度传感器数值,过滤掉重力加速度
已知android 加速度传感器和方向传感器的,想将加速度传感器参数分解,过滤掉重力加速度,求实际的加速度是多少,有点难,求大神,加分
2018-12-01 20:44:16 308 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 367 1
android lottie 怎么在eclipse上使用
 
2018-11-18 21:15:35 303 0
android加速度传感器类型TYPE_LINEAR_ACCELERATION、 TYPE_ACCELEROMETER有什么区别?
 
2018-12-06 22:29:00 278 0
求大神分享[Android开发视频教程]05_04_加速度传感器的使用种子下载,谢谢
 
2013-10-16 13:52:27 315 1
Android studio怎么管理Android虚拟机
 
2017-08-10 16:52:30 212 2
Android studio怎么创建Android虚拟机
 
2017-08-24 07:28:11 391 3
android模拟器,是否能模拟出加速度传感器的变化
RTeclips上面的AVD是否能模拟加速度变化
2013-10-20 14:34:45 236 1
[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 320 0
Android中的加速度传感器能用来测速度吗
有对加速度积分的应用吗,或者还可以读出位移
2013-06-12 11:52:09 304 1
android toc 怎么生成
 
2018-12-10 01:19:24 244 0
android toc 怎么生成
 
2016-10-24 02:03:30 332 1
android toc怎么生成
 
2016-10-28 18:24:35 346 1

2月突出贡献榜

推荐主页

最新话题