zoukankan      html  css  js  c++  java
  • android 获取手机中所有的传感器Sensor类使用方法

    高仿QQ设置滑动按钮,漂亮简单
    http://www.eoeandroid.com/thread-196576-1-1.html

    原创:实战db4o数据库01
    http://www.eoeandroid.com/thread-196073-1-1.html

    Android应用调用浏览器和电话的URI
    http://www.eoeandroid.com/thread-195752-1-1.html

    代码很简单,自己看就能明白,只是为了练习一下Sensor类的使用方法。算是一个练习.

    package mars.com;
     
    import java.util.List;
     
    import android.app.Activity;
     
    import android.content.Context;
     
    import android.hardware.Sensor;
     
    import android.hardware.SensorManager;
     
    import android.os.Bundle;
     
    import android.view.View;
     
    import android.view.View.OnClickListener;
     
    import android.widget.Button;
     
    import android.widget.TextView;
     
    public class DemoSensorActivity extends Activity {
     
    private Button button;
     
    private TextView show;
     
    private SensorManager sm;
     
    private StringBuffer str;
     
    private List<Sensor> allSensors;
     
    private Sensor s;
     
    @Override
     
    public void onCreate(Bundle savedInstanceState) {
     
      super.onCreate(savedInstanceState);
     
      setContentView(R.layout.main);
     
      button = (Button) findViewById(R.id.button);
     
      show = (TextView) findViewById(R.id.show);
     
      button.setOnClickListener(new ButtonListener());
     
      sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
     
      allSensors = sm.getSensorList(Sensor.TYPE_ALL);// 获得传感器列表
     
    }
     
    class ButtonListener implements OnClickListener {
     
      public void onClick(View v) {
     
       str = new StringBuffer();
     
       str.append("该手机有" + allSensors.size() + "个传感器,分别是:\n");
     
       for (int i = 0; i < allSensors.size(); i++) {
     
        s = allSensors.get(i);
     
        str.append("设备名称:" + s.getName() + "\n");
     
        str.append("设备版本:" + s.getVersion() + "\n");
     
        str.append("通用类型号:" + s.getType() + "\n");
     
        str.append("设备商名称:" + s.getVendor() + "\n");
     
        str.append("传感器功耗:" + s.getPower() + "\n");
     
        str.append("传感器分辨率:" + s.getResolution() + "\n");
     
        str.append("传感器最大量程:" + s.getMaximumRange() + "\n");
     
        switch (s.getType()) {
     
        case Sensor.TYPE_ACCELEROMETER:
     
         str.append(i + "加速度传感器");
     
         break;
     
        case Sensor.TYPE_GYROSCOPE:
     
         str.append(i + "陀螺仪传感器");
     
         break;
     
        case Sensor.TYPE_LIGHT:
     
         str.append(i + "环境光线传感器");
     
         break;
     
        case Sensor.TYPE_MAGNETIC_FIELD:
     
         str.append(i + "电磁场传感器");
     
         break;
     
        case Sensor.TYPE_ORIENTATION:
     
         str.append(i + "方向传感器");
     
         break;
     
        case Sensor.TYPE_PRESSURE:
     
         str.append(i + "压力传感器");
     
         break;
     
        case Sensor.TYPE_PROXIMITY:
     
         str.append(i + "距离传感器");
     
         break;
     
        case Sensor.TYPE_TEMPERATURE:
     
         str.append(i + "温度传感器");
     
         break;
     
        default:
     
         str.append(i + "未知传感器");
     
         break;
     
        }
     
       }
     
       show.setText(str);
     
      }
     
    }
     
    }
     

    布局文件

    <?xml version="1.0" encoding="utf-8"?>
     
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     
        android:layout_width="fill_parent"
     
        android:layout_height="fill_parent"
     
        android:orientation="vertical" >
     
        <Button
     
            android:id="@+id/button"
     
            android:layout_width="fill_parent"
     
            android:layout_height="wrap_content"
     
            android:text="获取传感器" />
     
        <ScrollView
     
            xmlns:android="http://schemas.android.com/apk/res/android"
     
            android:layout_width="fill_parent"
     
            android:layout_height="wrap_content"
     
            android:orientation="vertical" >
     
            <TextView
     
                android:id="@+id/show"
     
                android:layout_width="fill_parent"
     
                android:layout_height="wrap_content" />
     
        </ScrollView>
     
    </LinearLayout>
     
  • 相关阅读:
    Combine 框架,从0到1 —— 4.在 Combine 中使用计时器
    Combine 框架,从0到1 —— 4.在 Combine 中使用通知
    Combine 框架,从0到1 —— 3.使用 Subscriber 控制发布速度
    Combine 框架,从0到1 —— 2.通过 ConnectablePublisher 控制何时发布
    使用 Swift Package Manager 集成依赖库
    iOS 高效灵活地配置可复用视图组件的主题
    构建个人博客网站(基于Python Flask)
    Swift dynamic关键字
    Swift @objcMembers
    仅用递归函数操作逆序一个栈(Swift 4)
  • 原文地址:https://www.cnblogs.com/vus520/p/2669000.html
Copyright © 2011-2022 走看看