Android传感器代码
详细说明 各传感器调用方式,并附加详细的代码
Android下调用传感器代码
在这里介绍一下所写的在android下调用传感器的程序。
Android中支持的几种传感器:
Sensor.TYPE_*****OMETER:加速度传感器。
Sensor.TYPE_*****PE:陀螺仪传感器。
Sensor.TYPE_LIGHT:亮度传感器。
Sensor.TYPE_*****C_FIELD:地磁传感器。
Sensor.TYPE_*****TION:方向传感器。
Sensor.TYPE_*****E:压力传感器。
Sensor.TYPE_*****TY:近程传感器。
Sensor.TYPE_*****TURE:温度传感器。
使用传感器最关键的一些知识是:SensorManager是所有传感器的一个综合管理类,包括了传
感器的种类、采样率、精准度等。我们可以通过getSystemService方法来取得一个SensorManager对象。使用传感器时,需要通过registerListener函数注册传感器,使用完后需要通过unregisterListener取消注册。
百闻不如一见,还是直接讲代码:
新建一个Sensors的工程,创建一个Sensors.java,内容如下:
***-********-**********
01 package me.sigma.sensors;
02
03
04import android.app.Activity;
05import android.hardware.SensorListener;
06import android.hardware.SensorManager;
07import android.os.Bundle;
08import android.widget.TextView;
09
10public 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(yout.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_*****); 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_*****TURE){
51 myTextView1.setText(“Current Temprature:\"+values); 52 }else if(sensor == SensorManager.SENSOR_*****C_FIELD){
53 myTextView2.setText(\"Current Magnetic x:\"+values); 54 myTextView3.setText(\"Current Magnetic y:\"+values); 55 myTextView4.setText(\"Current Magnetic z:\"+values); 56 }else if(sensor == SensorManager.SENSOR_*****OMETER){
57 myTextView5.setText(\"Current Accelero x:\"+values); 58 myTextView6.setText(\"Current Accelero y:\"+values); 59 myTextView7.setText(\"Current Accelero z:\"+values); 60 }else if(sensor == SensorManager.SENSOR_*****TION){
61 myTextView8.setText(\"Current Oraenttation x:\"+values); 62
myTextView9.setText(\"Current Oraenttation y:\"+values); 63 myTextView10.setText(\"Current Oraenttation z:\"+values);  }else if(sensor == SensorManager.SENSOR_LIGHT){
65 myTextView11.setText(\"Current Oraenttation x:\"+values); 66 }
67 }
68 };
69 @Override
70 protected void onResume() {
71 mySensorManager.registerListener(
72 mySensorListener,
73 SensorManager.SENSOR_*****TURE |
74 SensorManager.SENSOR_*****C_FIELD |
75 SensorManager.SENSOR_*****OMETER |
76 SensorManager.SENSOR_LIGHT |
77 SensorManager.SENSOR_*****TION,
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,为如下内容:
***-********-**********
01 ?xml version=\"1.0\" encoding=\"utf-8\"?
02LinearLayout xmlns:android=\"/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\"
 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为如下内容:
***-********-**********
01 ?xml version=\"1.0\" encoding=\"utf-8\"?
02resources
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