Android Open Source - androidtool Sensor List Activity






From Project

Back to project page androidtool.

License

The source code is released under:

MIT License

If you think the Android project androidtool listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.chris.android.tool.sensor;
//  w ww . ja  va2s  . c o  m
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import org.chris.android.tool.R;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class SensorListActivity extends ListActivity {

    private static final Logger LOG = LoggerFactory.getLogger(SensorListActivity.class);

    private static final String COLUMN_SENSOR_NAME = "sensorName";
    private static final String COLUMN_SENSOR_TYPE = "sensorType";
    private static final String COLUMN_SENSOR_VENDOR = "sensorVendor";
    private static final String COLUMN_SENSOR_VERSION = "sensorVersion";
    private static final String COLUMN_SENSOR_DESCRIPTION = "sensorDescription";

    private List<Sensor> sensorList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        sensorList = sensorManager.getSensorList(Sensor.TYPE_ALL);
        LOG.debug("Found " + sensorList.size() + " sensors");
        setListAdapter(createListAdapter(sensorList));
    }

    private ListAdapter createListAdapter(List<Sensor> sensorList) {
        final List<? extends Map<String, ?>> data = createDataList(sensorList);
        return new SimpleAdapter(getApplicationContext(), data, android.R.layout.two_line_list_item, new String[]{
                COLUMN_SENSOR_NAME, COLUMN_SENSOR_DESCRIPTION}, new int[]{android.R.id.text1, android.R.id.text2});
    }

    private List<? extends Map<String, ?>> createDataList(List<Sensor> sensorList) {
        List<Map<String, ?>> data = new ArrayList<>(sensorList.size());
        for (final Sensor sensor : sensorList) {
            data.add(createDataMap(sensor));
        }
        return data;
    }

    private Map<String, Object> createDataMap(Sensor sensor) {
        final Map<String, Object> map = new HashMap<>();
        map.put(COLUMN_SENSOR_NAME, sensor.getName());
        map.put(COLUMN_SENSOR_VENDOR, sensor.getVendor());
        map.put(COLUMN_SENSOR_VERSION, sensor.getVersion());
        SensorType sensorType = SensorType.forId(sensor.getType());
        map.put(COLUMN_SENSOR_TYPE, sensorType != null ? sensorType.name() : null);
        map.put(COLUMN_SENSOR_DESCRIPTION, getDescription(sensor));
        return map;
    }

    private String getDescription(Sensor sensor) {
        SensorType sensorType = SensorType.forId(sensor.getType());
        return getString(R.string.sensor_description, sensorType != null ? sensorType.name() : null, sensor.getVendor(),
                sensor.getPower());
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        Sensor sensor = sensorList.get(position);
        if (sensor == null) {
            LOG.error("Did not find selected sensor");
            return;
        }
        displaySensor(sensor);
    }

    private void displaySensor(Sensor sensor) {
        Intent intent = new Intent(this, SensorDetailActivity.class);
        intent.putExtra(SensorDetailActivity.EXTRA_SENSOR_TYPE, sensor.getType());
        startActivity(intent);
    }
}




Java Source Code List

org.chris.android.tool.MainActivity.java
org.chris.android.tool.TorchHelper.java
org.chris.android.tool.gps.GpsActivity.java
org.chris.android.tool.gps.GpsStatusType.java
org.chris.android.tool.gps.SelectDestinationActivity.java
org.chris.android.tool.mobiledata.DataConnectionNetworkType.java
org.chris.android.tool.mobiledata.DataConnectionState.java
org.chris.android.tool.mobiledata.MobileDataHelper.java
org.chris.android.tool.nfc.NfcActivity.java
org.chris.android.tool.sensor.SensorDetailActivity.java
org.chris.android.tool.sensor.SensorListActivity.java
org.chris.android.tool.sensor.SensorService.java
org.chris.android.tool.sensor.SensorType.java
org.chris.android.tool.service.WifiService.java
org.chris.android.tool.service.WifiState.java