Sensor.java revision 61a449393cf29f3960b4e03ec3fad652dac51b88
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.hardware; 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Class representing a sensor. Use {@link SensorManager#getSensorList} 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to get the list of available Sensors. 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class Sensor { 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * A constant describing an accelerometer sensor type. 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See {@link android.hardware.SensorEvent SensorEvent} 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * for more details. 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int TYPE_ACCELEROMETER = 1; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * A constant describing a magnetic field sensor type. 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See {@link android.hardware.SensorEvent SensorEvent} 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * for more details. 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int TYPE_MAGNETIC_FIELD = 2; 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * A constant describing an orientation sensor type. 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See {@link android.hardware.SensorEvent SensorEvent} 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * for more details. 4461a449393cf29f3960b4e03ec3fad652dac51b88Mathias Agopian * @deprecated use {@link android.hardware.SensorManager#getOrientation 4561a449393cf29f3960b4e03ec3fad652dac51b88Mathias Agopian * SensorManager.getOrientation()} instead. 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4761a449393cf29f3960b4e03ec3fad652dac51b88Mathias Agopian @Deprecated 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int TYPE_ORIENTATION = 3; 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** A constant describing a gyroscope sensor type */ 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int TYPE_GYROSCOPE = 4; 524115c518753052add46b017bb3044da6f6169a7bMike Lockwood /** 534115c518753052add46b017bb3044da6f6169a7bMike Lockwood * A constant describing an light sensor type. 544115c518753052add46b017bb3044da6f6169a7bMike Lockwood * See {@link android.hardware.SensorEvent SensorEvent} 554115c518753052add46b017bb3044da6f6169a7bMike Lockwood * for more details. 564115c518753052add46b017bb3044da6f6169a7bMike Lockwood */ 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int TYPE_LIGHT = 5; 58210fc914db37b3cf77ebb3bf75b0b509a1ecb07cMathias Agopian 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** A constant describing a pressure sensor type */ 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int TYPE_PRESSURE = 6; 61210fc914db37b3cf77ebb3bf75b0b509a1ecb07cMathias Agopian 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** A constant describing a temperature sensor type */ 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int TYPE_TEMPERATURE = 7; 64210fc914db37b3cf77ebb3bf75b0b509a1ecb07cMathias Agopian 654115c518753052add46b017bb3044da6f6169a7bMike Lockwood /** 664115c518753052add46b017bb3044da6f6169a7bMike Lockwood * A constant describing an proximity sensor type. 674115c518753052add46b017bb3044da6f6169a7bMike Lockwood * See {@link android.hardware.SensorEvent SensorEvent} 684115c518753052add46b017bb3044da6f6169a7bMike Lockwood * for more details. 694115c518753052add46b017bb3044da6f6169a7bMike Lockwood */ 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int TYPE_PROXIMITY = 8; 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * A constant describing all sensor types. 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int TYPE_ALL = -1; 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* Some of these fields are set only by the native bindings in 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * SensorManager. 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mName; 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String mVendor; 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mVersion; 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mHandle; 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mType; 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private float mMaxRange; 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private float mResolution; 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private float mPower; 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mLegacyType; 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Sensor() { 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return name string of the sensor. 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getName() { 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mName; 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return vendor string of this sensor. 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getVendor() { 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mVendor; 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return generic type of this sensor. 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getType() { 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mType; 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return version of the sensor's module. 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getVersion() { 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mVersion; 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return maximum range of the sensor in the sensor's unit. 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public float getMaximumRange() { 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mMaxRange; 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return resolution of the sensor in the sensor's unit. 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public float getResolution() { 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mResolution; 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the power in mA used by this sensor while in use 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public float getPower() { 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mPower; 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getHandle() { 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mHandle; 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setRange(float max, float res) { 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mMaxRange = max; 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mResolution = res; 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setLegacyType(int legacyType) { 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mLegacyType = legacyType; 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getLegacyType() { 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mLegacyType; 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 161