Android 获取手机传感器信息

来源:互联网 发布:电商软件营销方案 编辑:程序博客网 时间:2024/05/01 00:58

  现在的手机中有各种各样的传感器,这篇文章就将一下,如何获取到手机的各种传感器的信息。

//SensorListActivity.java

<span style="font-size:24px;">import android.content.Context;import android.hardware.Sensor;import android.hardware.SensorManager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.TextView;import java.util.List;public class SensorListActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_sensor_list);        List<Sensor> sensorList = getSensorList();        //List<Sensor> sensorList = (List<Sensor>) getIntent().getSerializableExtra("sensorList");        ListView sensor_listView = (ListView) findViewById(R.id.sensor_listView);        SensorAdapter adapter = new SensorAdapter(SensorListActivity.this,R.layout.sensor_item,sensorList);        sensor_listView.setAdapter(adapter);    }    private List<Sensor> getSensorList() {        //获取传感器管理器        SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);        //获取传感器列表        List<Sensor> deviceSesors = sensorManager.getSensorList(Sensor.TYPE_ALL);        return deviceSesors;    }}</span>

//SensorAdpter.java

import android.content.Context;import android.hardware.Sensor;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.TextView;import java.util.List;/** * Created by J.KING on 2016/6/27. */public class SensorAdapter extends ArrayAdapter<Sensor>{    private int resourceId;    public SensorAdapter(Context context, int textViewResourceId, List<Sensor> objects) {        super(context, textViewResourceId, objects);        resourceId = textViewResourceId;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        Sensor sensor = getItem(position);        View view;        if(convertView == null){            view = LayoutInflater.from(getContext()).inflate(resourceId,null);        }else {            view = convertView;        }        TextView sensor_name = (TextView) view.findViewById(R.id.sensor_name);        TextView sensor_info = (TextView) view.findViewById(R.id.sensor_info);        String name = "";        String info = String.format("类型:%s\n供应商:%s\n功率:%s\n版本号:%d\n",sensor.getType(),sensor.getVendor(), sensor.getPower(), sensor.getVersion());        switch (sensor.getType()){            case 1:                name = "加速度传感器";                break;            case 13:                name = "温度传感器";                break;            case 15:                name = "游戏动作传感器";                break;            case 20:                name = "地磁旋转矢量传感器";                break;            case 9:                name = "重力传感器";                break;            case 4:                name = "陀螺仪传感器";                break;            case 16:                name = "未校准陀螺仪传感器";                break;            case 5:                name = "光线感应传感器";                break;            case 10:                name = "线性加速度传感器";                break;            case 2:                name = "磁力传感器";                break;            case 14:                name = "未校准磁力传感器";                break;            case 3:                name = "方向传感器";                break;            case 6:                name = "压力传感器";                break;            case 8:                name = "距离传感器";                break;            case 12:                name = "湿度传感器";                break;            case 11:                name = "旋转矢量传感器";                break;            case 17:                name = "特殊动作触发传感器";                break;            case 19:                name = "计步传感器";                break;            case 18:                name = "步行检测传感器";                break;            case 7:                name = "温度传感器";                break;            case 22:                name = "倾斜传感器";                break;            case 25:                name = "手势识别传感器";                break;            default:                name = sensor.getName();                break;        }        sensor_name.setText(name==""? sensor.getName():name);        sensor_info.setText(info);     return view;    }}



0 0
原创粉丝点击