获取Android手机设备中的传感器

//调用此方法即可
public void showIt() {
        //获得传感器管理器
        SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        List<Sensor> allSensors = sm.getSensorList(Sensor.TYPE_ALL);

        StringBuilder sb = new StringBuilder();
        // 显示有多少个传感器
        sb.append("\t该手机有" + allSensors.size() + "个传感器:\n\n");

        String typeName = "";
        // 显示每个传感器的具体信息
        for (Sensor s : allSensors) {
            typeName = SensorTypeName.getSensorTypeName(s.getType());
            sb.append(String.format("\t类型:%s\n", typeName));
            sb.append(String.format("\t设备名称:%s\n", s.getName()));
            sb.append(String.format("\t设备版本:%s\n", s.getVersion()));
            sb.append(String.format("\t供应商:%s\n", s.getVendor()));
            sb.append("\n");
        }// end for

        tx.setText(sb.toString());
    }

    static class SensorTypeName {
        private static String[] itsNames;
        
        static {
            itsNames = new String[20];
            itsNames[0] = "未知";
            itsNames[Sensor.TYPE_ACCELEROMETER] = "加速度";
            itsNames[Sensor.TYPE_MAGNETIC_FIELD] = "磁力";
            itsNames[Sensor.TYPE_ORIENTATION] = "方向";
            itsNames[Sensor.TYPE_GYROSCOPE] = "陀螺仪";
            itsNames[Sensor.TYPE_LIGHT] = "光线感应";
            itsNames[Sensor.TYPE_PRESSURE] = "压力";
            itsNames[Sensor.TYPE_TEMPERATURE] = "温度";
            itsNames[Sensor.TYPE_PROXIMITY] = "接近,距离传感器";
            itsNames[Sensor.TYPE_GRAVITY] = "重力";
            itsNames[Sensor.TYPE_LINEAR_ACCELERATION] = "线性加速度";
            itsNames[Sensor.TYPE_ROTATION_VECTOR] = "旋转矢量";
            itsNames[Sensor.TYPE_RELATIVE_HUMIDITY] = "TYPE_RELATIVE_HUMIDITY";
            itsNames[Sensor.TYPE_AMBIENT_TEMPERATURE] = "TYPE_AMBIENT_TEMPERATURE";
            itsNames[13] = "TYPE_AMBIENT_TEMPERATURE";
            itsNames[14] = "TYPE_MAGNETIC_FIELD_UNCALIBRATED";
            //itsNames[Sensor.TYPE_GAME_ROTATION_VECTOR] = "TYPE_GAME_ROTATION_VECTOR";
        }
        
        public static String getSensorTypeName(int type){
            if(type > 0 && type < itsNames.length){
                return itsNames[type];
            }
            return "未知";
        }
    }

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值