列出Android手机所支持的Sensor。

package com.example.sensorlist;

import java.util.List;

import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView; public class MainActivity extends Activity { private TextView tvSensors;
private SensorManager sensorManager; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); tvSensors = (TextView) findViewById(R.id.tvSensors);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); List<Sensor> sensors = sensorManager.getSensorList(Sensor.TYPE_ALL);
for(Sensor sensor: sensors){
tvSensors.append(sensor.getName() + "\n");
} } }

MainActivity

  使用MotionSensor的简单实例。

 1 package com.example.motionsensor;
2
3 import android.app.Activity;
4 import android.hardware.Sensor;
5 import android.hardware.SensorEvent;
6 import android.hardware.SensorEventListener;
7 import android.hardware.SensorManager;
8 import android.os.Bundle;
9 import android.widget.TextView;
10
11 //为了获取传感器回传的数据,需要implements SensorEventListener
12 public class MainActivity extends Activity implements SensorEventListener {
13
14 private TextView tvAccelermeter;
15 private SensorManager sensorManager;
16
17 @Override
18 protected void onCreate(Bundle savedInstanceState) {
19 super.onCreate(savedInstanceState);
20 setContentView(R.layout.activity_main);
21
22 tvAccelermeter = (TextView) findViewById(R.id.tvAccelermeter);
23
24 sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
25
26 }
27
28 @Override
29 public void onSensorChanged(SensorEvent event) {
30 // 多个传感器,要进行判断
31 switch (event.sensor.getType()) {
32 case Sensor.TYPE_ACCELEROMETER:
33 tvAccelermeter.setText(String.format("%f %f %f", event.values[0],
34 event.values[1], event.values[2]));
35 break;
36
37 case Sensor.TYPE_GRAVITY:
38 // tvAccelermeter.setText(String.format("%f %f %f", event.values[0],
39 // event.values[1], event.values[2]));
40 break;
41
42 default:
43 break;
44 }
45
46 }
47
48 @Override
49 public void onAccuracyChanged(Sensor sensor, int accuracy) {
50
51 }
52
53 @Override
54 protected void onResume() {
55 super.onResume();
56
57 // 注册传感器
58 sensorManager.registerListener(this,
59 sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
60 SensorManager.SENSOR_DELAY_UI);
61 sensorManager.registerListener(this,
62 sensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY),
63 SensorManager.SENSOR_DELAY_FASTEST);
64 }
65
66 @Override
67 protected void onPause() {
68 super.onPause();
69
70 sensorManager.unregisterListener(this);
71 }
72
73 }

MainActivity

最新文章

  1. MySQL初探
  2. 微信在IOS7下无法分享图片
  3. JS时间格式 GMT格式转换
  4. 关于audio元素在实际项目中遇到的问题总结
  5. hello world Firmware Library
  6. c++回调函数
  7. ArcGIS API for JavaScript 4.3学习笔记[新] AJS4.3和AJS3.20新特性
  8. JDK 中的设计模式应用实例
  9. Hyperledger Fabric、Corda和以太坊对比
  10. iOS----------适配iOS12
  11. 原 HTML5+规范:barcode(条码扫描)
  12. python学习中遇到的错误及解决办法
  13. Jenkins自动化构建配置
  14. cf 1110 D
  15. 2D游戏新手引导点光源和类迷雾实现
  16. Java 中的锁
  17. 019 jquery中的动画
  18. Unity + NGUI 实现人物头顶UI的信息展示
  19. 添加mysamba
  20. 【LeetCode3】Longest Substring Without Repeating Characters★★

热门文章

  1. Java学习的第二十八天
  2. SPOJ16607 IE1 - Sweets
  3. LRU算法详解
  4. Docker(4)- Docker 命令大全
  5. 细学C++之C++语言的特点
  6. .Net5,C#9 新语法(逻辑和属性模式,记录)
  7. Visual Studio空格变成点的快捷键切换
  8. JSON&amp;AJAX
  9. ngx accept_mutex
  10. 4.Spring Boot web开发