• 现在在北京,住的地方网不太好,来更新个传感器的栗子


    手机所有传感器的都添加到栗子中了

    package com.example.senortest;
    
    import android.app.Activity;
    import android.hardware.Sensor;
    import android.hardware.SensorEvent;
    import android.hardware.SensorEventListener;
    import android.hardware.SensorManager;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.EditText;
    
    public class MainActivity extends Activity
            implements SensorEventListener
    {
        // 定义Sensor管理器
        private SensorManager mSensorManager;
        EditText etOrientation;
        EditText etGyro;
        EditText etMagnetic;
        EditText etGravity;
        EditText etLinearAcc;
        EditText etTemerature;
        EditText etLight;
        EditText etPressure;
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            // 获取界面上的EditText组件
            etOrientation = (EditText) findViewById(R.id.etOrientation);
            etGyro = (EditText) findViewById(R.id.etGyro);
            etMagnetic = (EditText) findViewById(R.id.etMagnetic);
            etGravity = (EditText) findViewById(R.id.etGravity);
            etLinearAcc = (EditText) findViewById(R.id.etLinearAcc);
            etTemerature = (EditText) findViewById(R.id.etTemerature);
            etLight = (EditText) findViewById(R.id.etLight);
            etPressure = (EditText) findViewById(R.id.etPressure);
            // 获取传感器管理服务
            mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);  //
        }
        @Override
        protected void onResume()
        {
            super.onResume();
            // 为系统的方向传感器注册监听器
            mSensorManager.registerListener(this,
                    mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
                    SensorManager.SENSOR_DELAY_GAME);
            // 为系统的陀螺仪传感器注册监听器
            mSensorManager.registerListener(this,
                    mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE),
                    SensorManager.SENSOR_DELAY_GAME);
            // 为系统的磁场传感器注册监听器
            mSensorManager.registerListener(this,
                    mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
                    SensorManager.SENSOR_DELAY_GAME);
            // 为系统的重力传感器注册监听器
            mSensorManager.registerListener(this,
                    mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY),
                    SensorManager.SENSOR_DELAY_GAME);
            // 为系统的线性加速度传感器注册监听器
            mSensorManager.registerListener(this,
                    mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION),
                    SensorManager.SENSOR_DELAY_GAME);
            // 为系统的温度传感器注册监听器
            mSensorManager.registerListener(this,
                    mSensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE),
                    SensorManager.SENSOR_DELAY_GAME);
            // 为系统的光传感器注册监听器
            mSensorManager.registerListener(this,
                    mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT),
                    SensorManager.SENSOR_DELAY_GAME);
            // 为系统的压力传感器注册监听器
            mSensorManager.registerListener(this,
                    mSensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE),
                    SensorManager.SENSOR_DELAY_GAME);
        }
        @Override
        protected void onStop()
        {
            // 程序退出时取消注册传感器监听器
            mSensorManager.unregisterListener(this);
            super.onStop();
        }
        @Override
        protected void onPause()
        {
            // 程序暂停时取消注册传感器监听器
            mSensorManager.unregisterListener(this);
            super.onPause();
        }
        // 以下是实现SensorEventListener接口必须实现的方法
        @Override
        // 当传感器精度改变时回调该方法。
        public void onAccuracyChanged(Sensor sensor, int accuracy)
        {
        }
        @Override
        public void onSensorChanged(SensorEvent event)
        {
            float[] values = event.values;
            // 获取触发event的传感器类型
            int sensorType = event.sensor.getType();
            StringBuilder sb = null;
            // 判断是哪个传感器发生改变
            switch (sensorType)
            {
                // 方向传感器
                case Sensor.TYPE_ORIENTATION:
                    sb = new StringBuilder();
                    sb.append("绕Z轴转过的角度:");
                    sb.append(values[0]);
                    sb.append("
    绕X轴转过的角度:");
                    sb.append(values[1]);
                    sb.append("
    绕Y轴转过的角度:");
                    sb.append(values[2]);
                    etOrientation.setText(sb.toString());
                    break;
                // 陀螺仪传感器
                case Sensor.TYPE_GYROSCOPE:
                    sb = new StringBuilder();
                    sb.append("绕X轴旋转的角速度:");
                    sb.append(values[0]);
                    sb.append("
    绕Y轴旋转的角速度:");
                    sb.append(values[1]);
                    sb.append("
    绕Z轴旋转的角速度:");
                    sb.append(values[2]);
                    etGyro.setText(sb.toString());
                    break;
                // 磁场传感器
                case Sensor.TYPE_MAGNETIC_FIELD:
                    sb = new StringBuilder();
                    sb.append("X轴方向上的磁场强度:");
                    sb.append(values[0]);
                    sb.append("
    Y轴方向上的磁场强度:");
                    sb.append(values[1]);
                    sb.append("
    Z轴方向上的磁场强度:");
                    sb.append(values[2]);
                    etMagnetic.setText(sb.toString());
                    break;
                // 重力传感器
                case Sensor.TYPE_GRAVITY:
                    sb = new StringBuilder();
                    sb.append("X轴方向上的重力:");
                    sb.append(values[0]);
                    sb.append("
    Y轴方向上的重力:");
                    sb.append(values[1]);
                    sb.append("
    Z方向上的重力:");
                    sb.append(values[2]);
                    etGravity.setText(sb.toString());
                    break;
                // 线性加速度传感器
                case Sensor.TYPE_LINEAR_ACCELERATION:
                    sb = new StringBuilder();
                    sb.append("X轴方向上的线性加速度:");
                    sb.append(values[0]);
                    sb.append("
    Y轴方向上的线性加速度:");
                    sb.append(values[1]);
                    sb.append("
    Z轴方向上的线性加速度:");
                    sb.append(values[2]);
                    etLinearAcc.setText(sb.toString());
                    break;
                // 温度传感器
                case Sensor.TYPE_AMBIENT_TEMPERATURE:
                    sb = new StringBuilder();
                    sb.append("当前温度为:");
                    sb.append(values[0]);
                    etTemerature.setText(sb.toString());
                    break;
                // 光传感器
                case Sensor.TYPE_LIGHT:
                    sb = new StringBuilder();
                    sb.append("当前光的强度为:");
                    sb.append(values[0]);
                    etLight.setText(sb.toString());
                    break;
                // 压力传感器
                case Sensor.TYPE_PRESSURE:
                    sb = new StringBuilder();
                    sb.append("当前压力为:");
                    sb.append(values[0]);
                    etPressure.setText(sb.toString());
                    break;
            }
        }
    }

    布局XML

    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/orientation" />
    <EditText
        android:id="@+id/etOrientation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:editable="false"
        android:cursorVisible="false" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/gyro" />
    <EditText
        android:id="@+id/etGyro"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:editable="false"
        android:cursorVisible="false" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/magnetic" />
    <EditText
        android:id="@+id/etMagnetic"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:editable="false"
        android:cursorVisible="false" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/gravity" />
    <EditText
        android:id="@+id/etGravity"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:editable="false"
        android:cursorVisible="false" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/linearAcc" />
    <EditText
        android:id="@+id/etLinearAcc"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:editable="false"
        android:cursorVisible="false" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/temperature" />
    <EditText
        android:id="@+id/etTemerature"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:editable="false"
        android:cursorVisible="false" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/light" />
    <EditText
        android:id="@+id/etLight"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:editable="false"
        android:cursorVisible="false" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/pressure" />
    <EditText
        android:id="@+id/etPressure"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:editable="false"
        android:cursorVisible="false" />
    </LinearLayout>
    </ScrollView>

    strings

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    
        <string name="app_name">传感器测试</string>
        <string name="orientation">方向传感器返回的值</string>
        <string name="gyro">陀螺仪传感器返回的值</string>
        <string name="magnetic">磁场传感器返回的值</string>
        <string name="gravity">重力传感器返回的值</string>
        <string name="linearAcc">线性加速度传感器返回的值</string>
        <string name="temperature">温度传感器返回的值</string>
        <string name="light">光传感器返回的值</string>
        <string name="pressure">压力传感器返回的值</string>
    
    </resources>

    要在真机测试 

  • 相关阅读:
    How to Create a site at the specified URL and new database (CommandLine Operation)
    Using Wppackager to Package and Deploy Web Parts for Microsoft SharePoint Products and Technologies
    SQL Server Monitor v0.5 [Free tool]
    How to build Web Part
    Deploy web part in a virtual server by developing a Web Part Package file(.cab)
    How to recreate "sites" link if you delete it accidentally
    SharePoint Portal Server管理匿名访问设置
    Monitor sql connection from .Net SqlClient Data Provider
    Brief installation instruction of Sharepoint Portal Server
    How to Use SharePoint Alternate URL Access
  • 原文地址:https://www.cnblogs.com/AceIsSunshineRain/p/5216684.html
Copyright © 2020-2023  润新知