当前位置: 首页 > news >正文

网站建设道冲网络安装公司

网站建设道冲,网络安装公司,有什么可以接单做的网站,一个公司的官网模板目录 传感器的定义 三大类型传感器 1、运动传感器 2、环境传感器 3、位置传感器 传感器开发框架 1、SensorManager 2、Sensor 3、SensorEvent 4、SensorEventListener 一、使用传感器开发步骤 1、获取传感器信息 1)、获取传感器管理器 2)、获取设备的传感器对象列…目录 传感器的定义 三大类型传感器 1、运动传感器 2、环境传感器 3、位置传感器 传感器开发框架 1、SensorManager 2、Sensor 3、SensorEvent 4、SensorEventListener 一、使用传感器开发步骤 1、获取传感器信息 1)、获取传感器管理器 2)、获取设备的传感器对象列表 3)、迭代获取Sensor对象调用对应方法获取相关信息 2、获取传感器传回数据 1获得传感器管理器 2调用特定方法获得需要的传感器 3实现SensorEventListener接口重写onSensorChanged和onAccuracyChanged方法 4SensorManager对象调用registerListener注册监听器 5监听器的取消注册 二、获取传感器信息的实例 三、获取传感器传回数据的实例 原理 传感器的应用如微信的摇一摇功能、NFC、手机自带的指南针等等。下面将学习Android传感器的使用。 传感器的定义 一种物理设备或者生物器官能够探测、感受外界的信号物理条件(如光热 湿度)或化学组成如烟雾并将探知的信息传递给其他的设备或者器官。 三大类型传感器 1、运动传感器 –运动传感器测量加速力和旋转力它们包括加速度计重力传感器陀螺仪和旋转矢量传感器。 2、环境传感器 –环境传感器测量各种周围环境情况如环境温度、气压、光强、湿度等。包括气压计光度计和温度计。 3、位置传感器 –位置传感器测量设备的物理位置信息包括方向传感器和磁力计。 传感器开发框架 1、SensorManager –可以使用此类创建传感器服务的实例。这个类提供了多种方法来访问和列出传感器注册和注销传感器事件监听器并获取方向信息。该类还提供了几个传感器常量用于报告传感器的精度设置数据采集速率和校准传感器。 2、Sensor –可以使用此类创建特定传感器的实例。这个类提供了各种方法让你确定一个传感器的能力。 3、SensorEvent –系统使用此类创建传感器事件对象该对象提供有关传感器事件的信息。传感器事件对象包括以下信息原始传感器数据生成事件的传感器类型数据的准确性以及事件的时间戳。 4、SensorEventListener –可以使用此界面创建两种回传方法当传感器值更改或传感器准确度发生变化时会接收通知传感器事件。 一、使用传感器开发步骤 1、获取传感器信息 传感器的开发首先需要获取传感器的一些信息获取信息需要以下步骤 1)、获取传感器管理器 Android提供了一个sensorManager管理器通过这个类可以获取到都有哪些传感器获取sensorManager对象代码如下 SensorManager sm (SensorManager)getSystemService(SENSOR_SERVICE); 2)、获取设备的传感器对象列表 通过sensorManager管理器的getSensorList()方法可以获取传感器对象列表具体代码如下 ListSensor allSensors sm.getSensorList(Sensor.TYPE_ALL);3)、迭代获取Sensor对象调用对应方法获取相关信息 for(Sensor s:allSensors){sensor.getName(); //获得传感器名称sensor.getType(); //获得传感器种类sensor.getVendor(); //获得传感器供应商sensor.getVersion(); //获得传感器版本sensor.getResolution(); //获得精度值sensor.getMaximumRange(); //获得最大范围sensor.getPower(); //传感器使用时的耗电量 }2、获取传感器传回数据 1获得传感器管理器 SensorManager sm (SensorManager)getSystemService(SENSOR_SERVICE);2调用特定方法获得需要的传感器 调用SensorManager 对象的getDefaultSensor方法获取指定类型的传感器例如这里使用光线传感器具体代码: Sensor mSensorOrientation sm.getDefaultSensor(Sensor.TYPE_ORIENTATION);3实现SensorEventListener接口重写onSensorChanged和onAccuracyChanged方法 ①onSensorChanged(SensorEvent event);该方法在传感器的值发生改变的时候调用其参数是一个SensorEvent 对象通过该对象的values属性可以获取传感器的值该值是一个数组该变量最多有三个元素而且传感器不同对应元素代表的含义也不同 ②onAccuracyChanged(Sensor sensor , int accuracy);当传感器的进度发生改变时会回调 参数说明 sensor传感器对象 accuracy表示传感器新的精度 Override public void onSensorChanged(SensorEvent event) {final float[] _Data event.values;this.mService.onSensorChanged(_Data[0],_Data[1],_Data[2]); } Override public void onAccuracyChanged(Sensor sensor, int accuracy) { }4SensorManager对象调用registerListener注册监听器 为传感器注册监听事件通过调用sensorManager对象的registerListener方法来注册监听事件。         第一个参数是上下文对象第二个是传感器对象第三个是传感器的延时时间的精密程 度越精密越耗电。          SENSOR_DELAY_FASTEST——延时0msSENSOR_DELAY_GAME——延时20msSENSOR_DELAY_UI——延时60msSENSOR_DELAY_NORMAL——延时200ms 具体代码如下 sm.registerListener(mContext, mSensorOrientation, android.hardware.SensorManager.SENSOR_DELAY_UI);5监听器的取消注册 sm. unregisterListener(this);二、获取传感器信息的实例 先将前面第一个步骤获取传感器信息实例演示一下如何使用。 新建项目SensorDemo1。 修改activity_main.xml代码如下 ?xml version1.0 encodingutf-8? androidx.constraintlayout.widget.ConstraintLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityScrollViewandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentTextViewandroid:idid/txt_showandroid:layout_widthmatch_parentandroid:layout_heightmatch_parent //ScrollView/androidx.constraintlayout.widget.ConstraintLayout 修改MainActivity代码如下 public class MainActivity extends AppCompatActivity {private TextView txt_show;private SensorManager sm;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sm (SensorManager) getSystemService(Context.SENSOR_SERVICE);txt_show (TextView) findViewById(R.id.txt_show);ListSensor allSensors sm.getSensorList(Sensor.TYPE_ALL);StringBuilder sb new StringBuilder();sb.append(此手机有 allSensors.size() 个传感器分别有\n\n);for(Sensor s:allSensors){switch (s.getType()){case Sensor.TYPE_ACCELEROMETER:sb.append(s.getType() 加速度传感器(Accelerometer sensor) \n);break;case Sensor.TYPE_GYROSCOPE:sb.append(s.getType() 陀螺仪传感器(Gyroscope sensor) \n);break;case Sensor.TYPE_LIGHT:sb.append(s.getType() 光线传感器(Light sensor) \n);break;case Sensor.TYPE_MAGNETIC_FIELD:sb.append(s.getType() 磁场传感器(Magnetic field sensor) \n);break;case Sensor.TYPE_ORIENTATION:sb.append(s.getType() 方向传感器(Orientation sensor) \n);break;case Sensor.TYPE_PRESSURE:sb.append(s.getType() 气压传感器(Pressure sensor) \n);break;case Sensor.TYPE_PROXIMITY:sb.append(s.getType() 距离传感器(Proximity sensor) \n);break;case Sensor.TYPE_TEMPERATURE:sb.append(s.getType() 温度传感器(Temperature sensor) \n);break;default:sb.append(s.getType() 其他传感器 \n);break;}sb.append(设备名称 s.getName() \n 设备版本 s.getVersion() \n 供应商 s.getVendor() \n\n);}txt_show.setText(sb.toString());} } 效果如下 三、获取传感器传回数据的实例 实现前面第二个步骤获取传感器传回数据实例演示一下如何使用。下面实现采集方向传感器数据。 原理 – X 轴的方向 沿着屏幕水平方向从左到右如果手机如果不是是正方形的话较短的边需要水平 放置较长的边需要垂直放置。值域 [-180, 180] – Y 轴的方向 从屏幕的左下角开始沿着屏幕的的垂直方向指向屏幕的顶端。值域 [-90, 90] – Z 轴的方向 当水平放置时指向天空的方向。值域 [0, 360] 新建项目SensorDemo2。 修改activity_main.xml代码如下 ?xml version1.0 encodingutf-8? androidx.constraintlayout.widget.ConstraintLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityLinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalandroid:padding5dpTextViewandroid:idid/tv_value1android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_marginTop10dpandroid:text方位角android:textSize18spandroid:textStylebold /TextViewandroid:idid/tv_value2android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_marginTop10dpandroid:text倾斜角android:textSize18spandroid:textStylebold /TextViewandroid:idid/tv_value3android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_marginTop10dpandroid:text滚动角android:textSize18spandroid:textStylebold //LinearLayout/androidx.constraintlayout.widget.ConstraintLayout 修改MainActivity代码如下 SENSOR_DELAY_FASTEST最灵敏 SENSOR_DELAY_GAME 游戏的时候不过一般用这个就够了 SENSOR_DELAY_NORMAL 比较慢。 SENSOR_DELAY_UI 最慢的 public class MainActivity extends AppCompatActivity implements SensorEventListener {private TextView tv_value1;private TextView tv_value2;private TextView tv_value3;private SensorManager sManager;private Sensor mSensorOrientation;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sManager (SensorManager) getSystemService(SENSOR_SERVICE);mSensorOrientation sManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);sManager.registerListener(this, mSensorOrientation, SensorManager.SENSOR_DELAY_UI);bindViews();}private void bindViews() {tv_value1 (TextView) findViewById(R.id.tv_value1);tv_value2 (TextView) findViewById(R.id.tv_value2);tv_value3 (TextView) findViewById(R.id.tv_value3);}Overridepublic void onSensorChanged(SensorEvent event) {tv_value1.setText(方位角(沿Z轴) (float) (Math.round(event.values[0] * 100)) / 100);tv_value2.setText(倾斜角(沿X轴) (float) (Math.round(event.values[1] * 100)) / 100);tv_value3.setText(滚动角(沿Y轴) (float) (Math.round(event.values[2] * 100)) / 100);}Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {}Overrideprotected void onDestroy() {super.onDestroy();sManager.unregisterListener(this);} } 效果如下 下篇文章将通过靠近屏幕黑屏和计步器两个案例实践一下传感器的应用。
http://www.eeditor.cn/news/124361/

相关文章:

  • 网站的建设属于无形资产吗做网站的书籍推荐
  • 三亚做网站多少钱网站建设详细讲解 狐灵
  • 沧州专业网站建设公司创意视频制作app
  • 智慧景区网站建设开网店怎么和快递合作便宜
  • 用html制作个人简历中山短视频seo教程
  • 信和财富网站开发用python做的电商网站
  • 中英文企业网站制作天津团购鲜花的网站建设
  • 阳新网站建设企业邮箱怎么开通注册
  • 长沙网站建设价格山东网站制作公司排名
  • 建设工程挂网是在那个网站哪个视频网站做自媒体
  • 网站网站制作wordpress最近更新文章插件
  • 吉林做网站个人主页链接怎么填写
  • 北京网站开发服务商wordpress经典的主题
  • 银川网站建设实习生网址查询入口
  • 免费网站报价单怎么做网页升级紧急通知写作
  • 做渠道该从哪些网站入手wordpress手机版怎么注册
  • 中英文网站建设 pdf腰椎间盘突出怎么锻炼
  • 廊坊网站关键词推广鹤壁市城乡一体化示范区
  • 在灵璧怎样做网站苏州大学网站建设目标
  • 房地产网站大全做网站简约学校网站
  • 可以在线制作简历的网站互联网公司排名最新
  • 一个人做网站要多久jsp企业网站源码
  • dede手机网站跳转多页网站制作
  • 郑州建设网站定制wordpress商品列表对比插件
  • 哪儿有做字体设计的网站个人 邮箱 含网站 域名
  • 萍乡土建设计网站建网站的费用包括
  • asp公司网站做网站的博客
  • 浙江建设信息港网站考试成绩查询号wordpress
  • 做网站能收回吗中医网站模板
  • 网站做nat映射需要哪些端口网站建设是前端后端吗