Android 传感器代码

更新时间:2023-07-23 03:27:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

详细说明 各传感器调用方式,并附加详细的代码

Android下调用传感器代码

在这里介绍一下所写的在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,内容如下:

·········10········20········30········40········50········60········70········80········90········100

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_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,为如下内容:

·········10········20········30········40········50········60········70········80········90········100

01 <?xml version="1.0" encoding="utf-8"?>

02<LinearLayout 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"

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为如下内容:

·········10········20········30········40········50········60········70········80········90········100

01 <?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>

本文来源:https://www.bwwdw.com/article/xk0m.html

Top