介绍Sensor类

SDK只有一句介绍“Class representing a sensor. Use getSensorList(int) to get the list of available Sensors.”,表示一个感应器的类,可以使用getSensorList方法(此方法属于接下来要讲的SensorManager)获得所有可用的感应器,该方法返回的是一个List
下面的列表显示了,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的方法获得

加速度感应器

可以通过这个感应器获得三个浮点型
x-axis
y-axis
z-axis

X Y Z分别对应values[0]到[2]
X表示左右移动的加速度
Y表示前后移动的加速度
Z表示垂直方向的加速度 (测试时发现,将手机置于水平桌面稳定后 XY均为0 Z的值为9.4 约等于重力加速度,依次可以做一个简单的算法实现重力测力计。)

//申请震动权限
<uses-permission android:name="android.permission.VIBRATE"/>
package com.zingon.ztc.gpstry;import android.content.Context;
import android.hardware.SensorManager;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Vibrator;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {TextView inf;//感应器管理器,所有感应器都可以通过它获得SensorManager sm;//震动Vibrator vb;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);inf=(TextView)findViewById(R.id.inf);//获得系统服务sm= (SensorManager) getSystemService(Context.SENSOR_SERVICE);vb= (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);new SensorTry(sm,inf,vb).run();}
}
package com.zingon.ztc.gpstry;import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Vibrator;
import android.util.Log;
import android.widget.TextView;/*** Created by ztc on 16-3-9.*/
public class SensorTry extends Thread{SensorManager sm;String TAG = "sensor";TextView inf;Vibrator vb;float x,y,z;public SensorTry(SensorManager sm,TextView inf,Vibrator vb){this.sm=sm;this.inf=inf;this.vb=vb;}@Overridepublic void run() {//获得加速度传感器Sensor sensor=sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);//注册监听器sm.registerListener(myListener, sensor, SensorManager.SENSOR_DELAY_NORMAL);try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}//监听器SensorEventListener myListener=new SensorEventListener() {@Overridepublic void onSensorChanged(SensorEvent event) {if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){//图解中已经解释三个值的含义//当值变化超过 1 时,震动if(Math.abs(x-event.values[0])>=1||Math.abs(y-event.values[1])>=1||Math.abs(z-event.values[2])>=1) {x = event.values[0];y = event.values[1];z = event.values[2];Log.i(TAG,"onSensorChanged");Log.i(TAG, "\n heading " + x);Log.i(TAG, "\n pitch " + y);Log.i(TAG, "\n roll " + z);inf.setText("设备重力传感器\n\nX:");inf.append(String.valueOf((int) x));inf.append("\nY:");inf.append(String.valueOf((int) y));inf.append("\nZ:");inf.append(String.valueOf((int) z));// 停止 开启 停止 开启long[] pattern = {100, 400, 100, 400};vb.vibrate(pattern, -1);}}}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {Log.i(TAG, "onAccuracyChanged");}};
}

效果

手机移动,就会震动

Android调用传感器和震动相关推荐

  1. android动作传感器

    android动作传感器 Android平台支持一些用于监视设备动作的传感器(这样的传感器共有5个).其中两个(加速传感器和陀螺仪传感器)是纯的硬件传感器.另外三个(重力传感器.线性加速传感器和旋转向 ...

  2. android 手机震动功能吗,Android编程实现手机震动功能的方法

    本文实例讲述了android编程实现手机震动功能的方法.分享给大家供大家参考,具体如下: 在与用户交互时,常常会用到震动功能,以提醒用户.该功能实现比较简单,请参阅下面主要代码: import and ...

  3. 我的物联网之路-Android手机传感器概况(地磁为主)

    前言:本文主要以地磁为主介绍android的传感器类型,以及使用方法,再提供一个简单的demo供新手进行测试.研究生方向主要是物联网方向,虽然刚接触不久,但也有个大致的概念,本文算是开山之作-_-,之 ...

  4. android传感器_充分利用Android的传感器

    android传感器 Android平台特别适合Java™开发人员,是使用硬件传感器创建创新应用程序的理想选择. 了解可用于Android应用程序的一些接口选项,包括使用传感器子系统和录制音频片段. ...

  5. 【转】Android 加速度传感器 (G-Sensor)

    http://blog.csdn.net/stevenliyong/archive/2009/09/13/4547568.aspx Android 加速度传感器 (G-Sensor) 收藏 Andro ...

  6. 控制Android充电震动的代码,Android编程实现手机震动功能的方法

    本文实例讲述了Android编程实现手机震动功能的方法.分享给大家供大家参考,具体如下: 在与用户交互时,常常会用到震动功能,以提醒用户.该功能实现比较简单,请参阅下面主要代码: import and ...

  7. android qq第三方登录,Android调用第三方QQ登录代码分享

    本文为大家分享了调用QQ登录的相关代码,希望对大家有帮助,减少项目开发的时间,具体内容如下 1.去QQ开放平台注册帐号(http://open.qq.com/),为应用申请QQ的APP_ID , 并下 ...

  8. android区块链 钱包_区块链研究实验室|从Android调用区块链智能合约

    本教程将展示如何直接从Android开发环境-Android Studio中调用智能合约. 环境要求 我们将使用Tezos区块链.为了使我们的Android java代码与现有的.部署的智能合约交互, ...

  9. Android调用WebService系列之对象构建传递

    上一篇我们讲了如何封装Android调用WebService的能力,把上一章的类加入我们便有了与WebService通讯的能力.往往我们会遇到WebService调用是通过对象来进行实际交互调用的.于 ...

最新文章

  1. web标准化设计:常用的CSS命名规则
  2. C# 操作Excel数据透视表
  3. python正则匹配ip地址_Python正则表达式匹配和提取IP地址
  4. endnote咋手动输入文献_endnote如何导入参考文献?如何手动导入EndNote
  5. 代码生成工具之界面快速生成
  6. Linux start-kernel
  7. 简单说说我对几位认识的号主的印象
  8. 2021-2025年中国乘用车稳定杆行业市场供需与战略研究报告
  9. Firefox 差点就赢了第二次浏览器大战!
  10. Zabbix 4.0.0 新功能介绍
  11. RHEL7下Nginx配置文件详解(二)
  12. C++排序算法——归并排序
  13. 三校生高考计算机专业试题,三校生高考计算机试卷1
  14. visual studio 2017 installer 安装包制作过程出现的问题---无法注册模块 HRESULT -2147024769 请与您的技术支持人员联系...
  15. android 设置壁纸上下显示不全,默认锁屏壁纸及锁屏壁纸被拉伸显示不全的问题...
  16. 程序员面试指南 - 自我介绍
  17. AutoCAD 2021绿色中文精简版
  18. 快速批量在工作表插入图片
  19. 人工智能的影响是大众还是小众,对我们的职业有什么影响?
  20. php 解析pathinfo 类

热门文章

  1. IntelliJ IDEA中文注释字体更换最佳方法
  2. 区分PMOS管和NMOS管的巧妙记忆方法
  3. Libtorch:Linux系统中使用libtorch【下载、解压】【下载的libtorch是编译好的库文件,可直接使用】
  4. 吉软-java-第八次作业
  5. 黑马程序员——JavaSE之集合框架总结二
  6. 最新版Vmware虚拟机的下载方法、详细安装说明
  7. win10/11上一键切换全拼/双拼
  8. 十大城市男人魅力新榜 [转帖]
  9. NAT(网络地址转换)
  10. web项目部署服务器上线