|
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
|
package
com.example.magnetic_field_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 magneticSensor;//传感器对象
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);
magneticSensor=sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
if(magneticSensor==null){
Toast.makeText(this,
"您的设备不支持该功能!",
0).show();
}else{
String str="\n名字:"+magneticSensor.getName()+"\n电池:"+magneticSensor.getPower()+"\n类型:"+magneticSensor.getType()+"\nVendor:"+magneticSensor.getVendor()+"\n版本:"+magneticSensor.getVersion()+"\n幅度:"+magneticSensor.getMaximumRange();
tv_info.setText(str);
}
/**
* 注册监听器
*/
sensorManager.registerListener(sensoreventlistener, magneticSensor, 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
float[] valuse=event.values;
Message message=new
Message();
message.obj=valuse;
message.what=CHANGE;
handler.sendMessage(message);
}
@Override
public void
onAccuracyChanged(Sensor sensor, int
accuracy) {
// TODO Auto-generated method stub
}
};
private static
final byte
CHANGE=0x1;} |
Android传感器之磁场传感器
最新推荐文章于 2024-03-06 19:48:17 发布
本文详细介绍了磁传感器的使用方法及关键属性,并通过实例展示了如何注册监听器获取磁场信息。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Kotaemon
AI应用
Kotaemon 是由Cinnamon 开发的开源项目,是一个RAG UI页面,主要面向DocQA的终端用户和构建自己RAG pipeline
2676

被折叠的 条评论
为什么被折叠?



