路飞震惊世界:Android下调用传感器(温度,亮度方向,地磁等,附源码) - Sigma
来源:百度文库 编辑:九乡新闻网 时间:2024/04/30 13:23:09
装好Adroid SDK后,在sample的指导下,写了几个简单的类似hello world的程序,在这里介绍一下所写的在android下调用传感器的程序。
Android中支持的几种传感器:
Sensor.TYPE_ACCELEROMETER:加速度传感器。
Sensor.TYPE_GYROSCOPE:陀螺仪传感器。
Sensor.TYPE_LIGHT:亮度传感器。
Sensor.TYPE_MAGNETIC_FIELD:地磁传感器。
Sensor.TYPE_ORIENTATION:方向传感器。
Sensor.TYPE_PRESSURE:压力传感器。
Sensor.TYPE_PROXIMITY:近程传感器。
Sensor.TYPE_TEMPERATURE:温度传感器。
使用传感器最关键的一些知识是:SensorManager是所有传感器的一个综合管理类,包括了传感器的种类、采样率、精准度等。我们可以通过getSystemService方法来取得一个SensorManager对象。使用传感器时,需要通过registerListener函数注册传感器,使用完后需要通过unregisterListener取消注册。
百闻不如一见,还是直接讲代码:
新建一个Sensors的工程,创建一个Sensors.java,内容如下:
show source
·········10········20········30········40········50········60········70········80········90········10001
package
me.sigma.sensors;
02
03
04
import
android.app.Activity;
05
import
android.hardware.SensorListener;
06
import
android.hardware.SensorManager;
07
import
android.os.Bundle;
08
import
android.widget.TextView;
09
10
public
class
Sensors
extends
Activity {
11
TextView myTextView1;
//t
12
//gen
13
TextView myTextView2;
//x
14
TextView myTextView3;
//y
15
TextView myTextView4;
//z
16
//acc
17
TextView myTextView5;
//x
18
TextView myTextView6;
//y
19
TextView myTextView7;
//z
20
//ori
21
TextView myTextView8;
//x
22
TextView myTextView9;
//y
23
TextView myTextView10;
//z
24
//Light
25
TextView myTextView11;
//z
26
27
SensorManager mySensorManager;
//
28
@Override
29
public
void
onCreate(Bundle savedInstanceState) {
30
super
.onCreate(savedInstanceState);
31
setContentView(R.layout.main);
32
myTextView1 = (TextView) findViewById(R.id.myTextView1);
33
myTextView2 = (TextView) findViewById(R.id.myTextView2);
34
myTextView3 = (TextView) findViewById(R.id.myTextView3);
35
myTextView4 = (TextView) findViewById(R.id.myTextView4);
36
myTextView5 = (TextView) findViewById(R.id.myTextView5);
37
myTextView6 = (TextView) findViewById(R.id.myTextView6);
38
myTextView7 = (TextView) findViewById(R.id.myTextView7);
39
myTextView8 = (TextView) findViewById(R.id.myTextView8);
40
myTextView9 = (TextView) findViewById(R.id.myTextView9);
41
myTextView10 = (TextView) findViewById(R.id.myTextView10);
42
myTextView11 = (TextView) findViewById(R.id.myTextView11);
43
mySensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
44
}
45
private
SensorListener mySensorListener =
new
SensorListener(){
46
@Override
47
public
void
onAccuracyChanged(
int
sensor,
int
accuracy) {}
48
@Override
49
public
void
onSensorChanged(
int
sensor,
float
[] values) {
50
if
(sensor == SensorManager.SENSOR_TEMPERATURE){
51
myTextView1.setText(
"Current Temprature:"
+values[
0
]);
52
}
else
if
(sensor == SensorManager.SENSOR_MAGNETIC_FIELD){
53
myTextView2.setText(
"Current Magnetic x:"
+values[
0
]);
54
myTextView3.setText(
"Current Magnetic y:"
+values[
1
]);
55
myTextView4.setText(
"Current Magnetic z:"
+values[
2
]);
56
}
else
if
(sensor == SensorManager.SENSOR_ACCELEROMETER){
57
myTextView5.setText(
"Current Accelero x:"
+values[
0
]);
58
myTextView6.setText(
"Current Accelero y:"
+values[
1
]);
59
myTextView7.setText(
"Current Accelero z:"
+values[
2
]);
60
}
else
if
(sensor == SensorManager.SENSOR_ORIENTATION){
61
myTextView8.setText(
"Current Oraenttation x:"
+values[
0
]);
62
myTextView9.setText(
"Current Oraenttation y:"
+values[
1
]);
63
myTextView10.setText(
"Current Oraenttation z:"
+values[
2
]);
64
}
else
if
(sensor == SensorManager.SENSOR_LIGHT){
65
myTextView11.setText(
"Current Oraenttation x:"
+values[
0
]);
66
}
67
}
68
};
69
@Override
70
protected
void
onResume() {
71
mySensorManager.registerListener(
72
mySensorListener,
73
SensorManager.SENSOR_TEMPERATURE |
74
SensorManager.SENSOR_MAGNETIC_FIELD |
75
SensorManager.SENSOR_ACCELEROMETER |
76
SensorManager.SENSOR_LIGHT |
77
SensorManager.SENSOR_ORIENTATION,
78
SensorManager.SENSOR_DELAY_UI
79
);
80
super
.onResume();
81
}
82
@Override
83
protected
void
onPause() {
84
mySensorManager.unregisterListener(mySensorListener);
85
super
.onPause();
86
}
87
}
更改res/layout/下面的main.xml,为如下内容:
show source
·········10········20········30········40········50········60········70········80········90········10001
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
02
<
LinearLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
03
android:orientation
=
"vertical"
04
android:layout_width
=
"fill_parent"
05
android:layout_height
=
"fill_parent"
>
06
<
TextView
07
android:id
=
"@+id/title"
08
android:gravity
=
"center_horizontal"
09
android:textSize
=
"20px"
10
android:layout_width
=
"fill_parent"
11
android:layout_height
=
"wrap_content"
12
android:text
=
"@string/title"
/>
13
<
TextView
14
android:id
=
"@+id/myTextView1"
15
android:textSize
=
"18px"
16
android:layout_width
=
"fill_parent"
17
android:layout_height
=
"wrap_content"
18
android:text
=
"@string/myTextView1"
/>
19
<
TextView
20
android:id
=
"@+id/myTextView2"
21
android:textSize
=
"18px"
22
android:layout_width
=
"fill_parent"
23
android:layout_height
=
"wrap_content"
24
android:text
=
"@string/myTextView2"
/>
25
<
TextView
26
android:id
=
"@+id/myTextView3"
27
android:textSize
=
"18px"
28
android:layout_width
=
"fill_parent"
29
android:layout_height
=
"wrap_content"
30
android:text
=
"@string/myTextView3"
/>
31
<
TextView
32
android:id
=
"@+id/myTextView4"
33
android:textSize
=
"18px"
34
android:layout_width
=
"fill_parent"
35
android:layout_height
=
"wrap_content"
36
android:text
=
"@string/myTextView4"
/>
37
<
TextView
38
android:id
=
"@+id/myTextView5"
39
android:textSize
=
"18px"
40
android:layout_width
=
"fill_parent"
41
android:layout_height
=
"wrap_content"
42
android:text
=
"@string/myTextView5"
/>
43
<
TextView
44
android:id
=
"@+id/myTextView6"
45
android:textSize
=
"18px"
46
android:layout_width
=
"fill_parent"
47
android:layout_height
=
"wrap_content"
48
android:text
=
"@string/myTextView6"
/>
49
<
TextView
50
android:id
=
"@+id/myTextView7"
51
android:textSize
=
"18px"
52
android:layout_width
=
"fill_parent"
53
android:layout_height
=
"wrap_content"
54
android:text
=
"@string/myTextView7"
/>
55
<
TextView
56
android:id
=
"@+id/myTextView8"
57
android:textSize
=
"18px"
58
android:layout_width
=
"fill_parent"
59
android:layout_height
=
"wrap_content"
60
android:text
=
"@string/myTextView8"
/>
61
<
TextView
62
android:id
=
"@+id/myTextView9"
63
android:textSize
=
"18px"
64
android:layout_width
=
"fill_parent"
65
android:layout_height
=
"wrap_content"
66
android:text
=
"@string/myTextView9"
/>
67
<
TextView
68
android:id
=
"@+id/myTextView10"
69
android:textSize
=
"18px"
70
android:layout_width
=
"fill_parent"
71
android:layout_height
=
"wrap_content"
72
android:text
=
"@string/myTextView10"
/>
73
<
TextView
74
android:id
=
"@+id/myTextView11"
75
android:textSize
=
"18px"
76
android:layout_width
=
"fill_parent"
77
android:layout_height
=
"wrap_content"
78
android:text
=
"@string/myTextView11"
/>
79
LinearLayout
>
80
更改res/values/strings.xml为如下内容:
show source
·········10········20········30········40········50········60········70········80········90········10001
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
02
<
resources
>
03
<
string
name
=
"hello"
>templator!
string
>
04
<
string
name
=
"app_name"
>templator
string
>
05
<
string
name
=
"title"
>Sigma Sensors
string
>
06
<
string
name
=
"myTextView1"
>Current Temprature:
string
>
07
<
string
name
=
"myTextView2"
>Current Magnetic x:
string
>
08
<
string
name
=
"myTextView3"
>Current Magnetic y:
string
>
09
<
string
name
=
"myTextView4"
>Current Magnetic z:
string
>
10
<
string
name
=
"myTextView5"
>Current Accelero x:
string
>
11
<
string
name
=
"myTextView6"
>Current Accelero y:
string
>
12
<
string
name
=
"myTextView7"
>Current Accelero z:
string
>
13
<
string
name
=
"myTextView8"
>Current Oraenttation x:
string
>
14
<
string
name
=
"myTextView9"
>Current Oraenttation y:
string
>
15
<
string
name
=
"myTextView10"
>Current Oraenttation z:
string
>
16
<
string
name
=
"myTextView11"
>Current Light:
string
>
17
resources
>
18
Android下调用传感器(温度,亮度方向,地磁等,附源码) - Sigma
建立Android SDK下的JNI、JAVA应用完整步骤---Android JAVA调用C++代码
Ubuntu下编译Android源码全过程(转) - 刷机技术交流/讨论/求助 - 安卓网...
【图片报道】从加速度传感器、陀螺仪、地磁传感器到GPS、触控板、3G通信,新型PSP汇集多种传感器
Android源码编译
Ubuntu编译 Android 源码
android sd卡读写 附源码 - 有痣青年 - ITeye技术网站
通信达ddx ddy ddz(附调用图)OK
Android Launcher研究(一)-----------图文详解手把手教你在Windows环境下下载Android源码(Launcher为例)
布林的计算(附源码)
获取Android 源码的方法
张孟超医师的泽漆汤等案例(附治咳喘、湿疹、心痛、下利)张孟超
直接调用内置数据源连接对话框(C#/VB.NET2005源码) - 瘦山鸿的I.T.生活 - 博客园
主力轨迹(附操作经验 副图 源码贴图)
传感器
Ubuntu 10.04(64位)下载并编译 Android 2.2 源码[只有11条命令]666
在Eclipse中加入Android源码
Android源码编译遇到的问题
怎样 使用Eclipse来开发Android源码
Git来获取Android源码(转)
git获取Android源码,可以断点续传
也走横塘路(下附攻略)
DMI捕捉爆涨股等10个公式(源码)
[03-08] 大智慧精品指标《主力进场扫货》源码(附更多源码公式) - 指标公式 - 鼎...