代码片段,双击复制
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
package com.example.gyro_sensor;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
import android.widget.Toast;
/**
* 陀螺仪传感器
*
* @author pengxiaolong
*
*/
public class MainActivity extends Activity {
       
         SensorManager sensorManager;//管理器对象
       
         Sensor gyroSensor;//传感器对象
       
         TextView tv_X;
       
         TextView tv_Y;
       
         TextView tv_Z;
       
//         TextView tv_info;
       
       
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                View_init();
                projectinit();
        }
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.main, menu);
                return true;
        }
       
       
        /**
         * 对象的初始化
         */
        private void projectinit(){
               
                sensorManager=(SensorManager) getSystemService(SENSOR_SERVICE);
                gyroSensor=sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
                if(gyroSensor==null){
                        Toast.makeText(this, "您的设备不支持该功能!", 1).show();
                }else{
//                String str="\n名字:"+gyroSensor.getName()+"\n电池:"+gyroSensor.getPower()+"\n类型:"+gyroSensor.getType()+"\nVendor:"+gyroSensor.getVendor()+"\n版本:"+gyroSensor.getVersion()+"\n幅度:"+gyroSensor.getMaximumRange();
//           
//                tv_info.setText(str);
//       
               
                /**
                 * 注册监听器
                 */
                sensorManager.registerListener(sensoreventlistener, gyroSensor, SensorManager.SENSOR_DELAY_NORMAL);
                }
        }
       
        /**
         * 小组件的初始化
         */
        private void View_init(){
               
//                tv_info=(TextView) this.findViewById(R.id.info);
                tv_X=(TextView) this.findViewById(R.id.tvX);
                tv_Y=(TextView) this.findViewById(R.id.tvY);
                tv_Z=(TextView) this.findViewById(R.id.tvZ);
               
        }
   
       
        @Override
        protected void onDestroy() {
                // TODO Auto-generated method stub
                super.onDestroy();
                /**
                 * 解除注册
                 */
                sensorManager.unregisterListener(sensoreventlistener);
        }
        private Handler handler=new Handler(){
                @Override
                public void handleMessage(Message msg) {
                        // TODO Auto-generated method stub
                       
                        switch(msg.what){
                       
                        case CHANGE:
                               
                                float[] valuse=(float[]) msg.obj;
                               
       
                                tv_X.setText("沿X轴旋转的角度为:"+Float.toString(valuse[0]));
                                tv_Y.setText("沿Y轴旋转的角度为:"+Float.toString(valuse[1]));
                                tv_Z.setText("沿Z轴旋转的角度为:"+Float.toString(valuse[2]));
                               
                                break;
                        }
                        super.handleMessage(msg);
                }
               
               
               
        };
        /**
         * 传感器的监听
         */
        private SensorEventListener sensoreventlistener=new SensorEventListener() {
               
                @Override
                public void onSensorChanged(SensorEvent event) {
                        // TODO Auto-generated method stub
                        System.out.println("===========ll---???");
                        float[] valuse=event.values;
//                        for (int i = 0; i < valuse.length; i++) {
//                                System.out.println(valuse+"\n");
//                        }
//                        Message message=new Message();
//                        message.obj=valuse;
//                        message.what=CHANGE;
//                        handler.sendMessage(message);
                        tv_X.setText("沿X轴旋转的角度为:"+Float.toString(valuse[0]));
                        tv_Y.setText("沿Y轴旋转的角度为:"+Float.toString(valuse[1]));
                        tv_Z.setText("沿Z轴旋转的角度为:"+Float.toString(valuse[2]));
                }
               
                @Override
                public void onAccuracyChanged(Sensor sensor, int accuracy) {
                        // TODO Auto-generated method stub
                       
                       
                }
        };
       
        private static final byte CHANGE=0x1;
}

Android传感器之陀螺仪传感器相关推荐

  1. Android 传感器之方向传感器

    一般情况下,在android系统中获取手机的方位信息在api中有TYPE_ORIENTATION常量,可以像得到加速度传感器那样得到方向传感器sm.getDefaultSensor(Sensor.TY ...

  2. Android传感器之-方向传感器Orientation功能实现与源码

    先明确一下空间坐标系的三个方向: x 方向就是手机的水平方向,右为正: y 方向就是手机的水平垂直方向,前为正: z 方向就是手机的空间垂直方向,天空的方向为正,地球的方向为负. 方向角的定义是手机y ...

  3. SLAM总结(三)-传感器之各传感器特性

    SLAM总结(三)-传感器之各传感器特性 一.综述 二.相机 1.单目相机 2.深度相机 双目相机 结构光相机 ToF相机 三.激光雷达 1.2D激光雷达 2.3D激光雷达 四.IMU 六.编码器 五 ...

  4. Android - 小功能 - 传感器之重力传感器

      一:什么是传感器: 所谓传感器能够探测如光.热.温度.重力.方向 等等的功能!         二:Android中提供传感器有哪些: 1.  加速度传感器(重力传感器)         2.   ...

  5. Android中的传感器之---磁场传感器

    磁场传感器和加速度传感器是一样一样的(我说的是得到数据) Android的磁场传感器,Magnetic Field..读取磁场的变化,通过该传感器可开发出指南针.罗盘等磁场应用.该传感器读取的数据是空 ...

  6. Android中的传感器之---加速度传感器

    加速度传感器 加速度传感器又叫G-sensor,返回x.y.z三轴的加速度数值. 该数值包含地心引力的影响,单位是m/s^2. 将手机平放在桌面上,x轴默认为0,y轴默认0,z轴默认9.81(由于地球 ...

  7. Android 传感器之《加速传感器》——摇一摇功能

    Android传感器开发参考网站: Android Developers镜像网站:http://wear.techbrood.com/guide/topics/sensors/sensors_over ...

  8. PreScan快速入门到精通第二十八讲PreScan中常用传感器之TIS传感器

    28.1 关于TIS: TIS帮助用户增加对有源扫描传感器的一般知识和了解.它的操作不与特定的技术(如雷达.激光雷达或激光扫描器的技术)挂钩,但TIS确实是根据这些设备的共同操作原则工作的. 其操作不 ...

  9. 传感器和Android平台的开放性结合在一起-传感器之家文章 - 传感器知识博客 - yuyangsensor - 和讯博客

        Android是以Google为首的开放手机联盟于2007年推出的基于Linux平台开源手机操作系统的名称,目前最新版本为Android4.2以上.为什么Android如今非常的流行,这主要是 ...

最新文章

  1. t-top 命令详解
  2. springboot默认数据源如何设置连接数_spring boot基于DRUID数据源密码加密及数据源监控实现...
  3. How to resolve unassigned shards in Elasticsearch——写得非常好
  4. java hibernate sql,Java Hibernate中使用SQL 而不使用HQL
  5. java培训学费_参加java培训大概的费用是多少钱?
  6. 什么叫静态构建版本号码_为什么要使用GatsbyJS构建静态网站
  7. 3 css 奖品出现弹出动画_10 个 GitHub 上超火的 CSS 奇技淫巧项目,找到写 CSS 的灵感!...
  8. 【白皮书分享】2021-2022内容营销平台价值洞察白皮书.pdf(附下载链接)
  9. metaspolit教程
  10. flume获取mysql日志到hdfs_flume采集方案nginx日志到hdfs上
  11. 淘票票经典Python爬虫案例
  12. 树莓派 网络附加存储NAS系统和USB外接硬盘文件服务器
  13. 3.19美团实习面试一面二面(已offer)
  14. 电路板元件符号及名称概述
  15. 动态规划——贴纸拼词
  16. excel 外部链接 乱码_在Excel文件中查找外部链接
  17. 心跳异常检测--使用Keras,K折交叉训练CNN一维卷积
  18. 按照黑马教程学习javaWeb出现Property ‘dataSource‘ is requir报错HTTP Status 500 – Internal Server Error——解决方案
  19. UI自动化偷懒必备:AirTest封装好ADB命令
  20. VS2015正式版出炉-----

热门文章

  1. linux锁屏自动登录,Linux系列:Ubuntu/fedora实用小技巧—禁止自动锁屏、设置免密码自动登录、免密码执行sudo操作...
  2. VisionPro二次开发——C#计算旋转中心
  3. 陈 好 性 感 写 真 ,难得一见哦[贴图]
  4. MUI中vue的@click事件没反应
  5. css样式 向下补白,CSS尺寸与补白
  6. [词一首]【相思难断】
  7. 我欲封神——JAVA封神之路
  8. 《宅男的android开发指南》(翻译)--4
  9. 意法半导体 STM32F102C4 芯片解密 芯片特性
  10. Linux信号:SIGCHLD信号和僵尸进程