① android溫度感測器獲得的是什麼溫度
1)溫度感測器返回當前的溫度,單位是攝氏度(°C)。
2)具體代碼如下
[java] view
plainprint?
package com.example.androidapp;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
private SensorManager mSensorManager=null;
private Sensor mSensor=null;
private TextView textView1=null;
private Button button1=null;
private Button button2=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView1=(TextView)findViewById(R.id.textView1);
/*獲取系統服務(SENSOR_SERVICE)返回一個SensorManager對象*/
mSensorManager=(SensorManager)getSystemService(SENSOR_SERVICE);
/*通過SensorManager獲取相應的(溫度感測器)Sensor類型對象*/
mSensor=mSensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE);
/*注冊相應的SensorService*/
button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View arg0) {
mSensorManager.registerListener(mSensorEventListener, mSensor
, SensorManager.SENSOR_DELAY_NORMAL);
}
});
/* 銷毀相應的SensorService
* 很關鍵的部分,注意,說明文檔中提到,即使Activity不可見的時候,感應器依然會繼續工作
* 所以一定要關閉觸發器,否則將消耗用戶大量電量*/
button2=(Button)findViewById(R.id.button2);
button2.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
mSensorManager.unregisterListener(mSensorEventListener, mSensor);
}
});
}
/*聲明一個SensorEventListener對象用於偵聽Sensor事件,並重載onSensorChanged方法*/
private final SensorEventListener mSensorEventListener=new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType()==Sensor.TYPE_TEMPERATURE){
/*溫度感測器返回當前的溫度,單位是攝氏度(°C)。*/
float temperature=event.values[0];
textView1.setText(String.valueOf(temperature)+"°C");
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
② android加速度感測器怎麼使用
玩游戲的時候才能感覺出來
③ 開發android應用程序怎麼調用光感測器
Android手機自帶光線感測器,通常我們手機的屏幕自動亮度都是用光線感測器來實現的。該感測器在前置攝像頭附近,此外,還有一個距離感測器。本文主要講解如何使用Android手機的光線感測器。
獲得感應器服務
Android開發中要使用光線感測器,需要先獲得系統感測器服務Context.SENSOR_SERVICE,獲得方法如下:
SensorManager senserManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
獲得光線感測器
SensorManager是系統感測器服務,是系統所有感測器的管理器。通過它,我們獲得制定類型的感測器,獲得光線感測器的方法如下:
詳細代碼
④ android 判斷支持哪些感測器
Android中判斷手機是否支持感測器,可以通過SensorManager這個類來獲取手機所有的感測器列表,如下代碼:
package com.example.testsensor;
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);
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);
}
}
}
⑤ 懇求高手來解圍,急!想問下:android裡面觸摸感測器是這么個概念這跟軟體之間的關系是什麼
Andorid的感測器有:加速感測器(accelerometer),陀螺儀(gyroscope),環境光照感測器(light),磁力感測器(magneticfield),方向感測器(orientation),壓力感測器 (pressure),距離感測器(proximity) ,溫度感測器(temperature),沒有見過觸摸感測器
⑥ Android 光照感測器精度問題
Android感測器編程入門,分別包括加速度感測器(accelerometer),陀螺儀(gyroscope),環境光照感測器(light),磁力感測器(magnetic field),方向感測器(orientation),壓力感測器(pressure),距離感測器(proximity)和溫度感測器(temperature)一、前言我很喜歡電腦,可是筆記本還是太大,筆記本電腦再小還是要弄個小包背起來的,智能手機則不同,它完全就是一個手機,可以隨意裝在一個口袋裡隨身攜帶。因此我在2002年左右時最喜歡玩裝備是Dell的PDA,2007年的時候最喜歡玩的是N73,而在2010年最喜歡玩的則是Milestone。眼見著手機的功能越來越強,時至今日智能手機甚至在某些方面已經強過了台式機和筆記本。本節課講的就是智能手機強過台式機和筆記本的地方:感測器。
⑦ 關於安卓智能手機系統的感測器問題
方向感測器和加速度感測器主要用於游戲,電磁場感測器這個很少見啊,因該是用來確定方位信息的,比如GPS,至於溫度感測器是用於監測電池和CPU溫度的。
⑧ Android 中有哪些感測器的數據是可以分享的
TYPE_ACCELEROMETER 加速度感測器又叫 G-sensor,該數值包含地心引力的影響,單位是 m/s2,測量應用於設備 x 、y、z 軸上的加速度。
將手機平放在桌面上,x 軸默認為0,y 軸默認0,z 軸默認9.81。
將手機朝下放在桌面上,z 軸為-9.81。
將手機向左傾斜,x 軸為正值。
將手機向右傾斜,x 軸為負值。
將手機向上傾斜,y 軸為負值。
將手機向下傾斜,y 軸為正值。
TYPE_AMBIENT_TEMPERATURE 溫度感測器,單位是 ℃,返回當前的溫度。
TYPE_GAME_ROTATION_VECTOR 用來探測運動而不必受到電磁干擾的影響,因為它並不依賴於磁北極。
TYPE_GEOMAGNETIC_ROTATION_VECTOR 地磁旋轉矢量感測器,提供手機的旋轉矢量,當手機處於休眠狀態時,仍可以記錄設備的方位。
TYPE_GRAVITY 重力感測器簡稱 GV-sensor,單位是 $m/s^2%,測量應用於設備X、Y、Z軸上的重力。在地球上,重力數值為9.8,
TYPE_GYROSCOPE 陀螺儀感測器叫做Gyro-sensor,返回x、y、z三軸的角加速度數據。單位是 radians/second。
TYPE_GYROSCOPE_UNCALIBRATED 未校準陀螺儀感測器,提供原始的、未校準、補償的陀螺儀數據,用於後期處理和融合定位數據。
TYPE_LIGHT 光線感應感測器檢測實時的光線強度,光強單位是lux,其物理意義是照射到單位面積上的光通量。
TYPE_LINEAR_ACCELERATION 線性加速度感測器簡稱LA-sensor。線性加速度感測器是加速度感測器減去重力影響獲取的數據。單位是 m/s2。
TYPE_MAGNETIC_FIELD 磁力感測器簡稱為M-sensor,返回 x、y、z 三軸的環境磁場數據。該數值的單位是微特斯拉(micro-Tesla),用uT表示。單位也可以是高斯(Gauss),1Tesla=10000Gauss。硬體上一般沒有獨立的磁力感測器,磁力數據由電子羅盤感測器提供(E-compass)。電子羅盤感測器同時提供方向感測器數據。
TYPE_MAGNETIC_FIELD_UNCALIBRATED 未校準磁力感測器,提供原始的、未校準的磁場數據。
TYPE_ORIENTATION 方向感測器簡稱為O-sensor,返回三軸的角度數據,方向數據的單位是角度。為了得到精確的角度數據,E-compass 需要獲取 G-sensor 的數據,經過計算生產 O-sensor 數據,否則只能獲取水平方向的角度。方向感測器提供三個數據,分別為azimuth、pitch和roll:
azimuth: 方位,返回水平時磁北極和 Y 軸的夾角,范圍為0°至360°。0°為北,90°為東,180°為南,270°為西。
pitch: x 軸和水平面的夾角,范圍為-180°至180°。當 z 軸向 y 軸轉動時,角度為正值。
roll: y 軸和水平面的夾角,由於歷史原因,范圍為-90°至90°。當 x 軸向 z 軸移動時,角度為正值。
TYPE_PRESSURE 壓力感測器,單位是hPa(百帕斯卡),返回當前環境下的壓強。
TYPE_PROXIMITY 接近感測器檢測物體與手機的距離,單位是厘米。一些接近感測器只能返回遠和近兩個狀態,因此,接近感測器將最大距離返回遠狀態,小於最大距離返回近狀態。
TYPE_RELATIVE_HUMIDITY 濕度感測器,單位是 %,來測量周圍環境的相對濕度。
TYPE_ROTATION_VECTOR 旋轉矢量感測器簡稱RV-sensor。旋轉矢量代表設備的方向,是一個將坐標軸和角度混合計算得到的數據。RV-sensor輸出三個數據:
x*sin(theta/2)
y*sin(theta/2)
z*sin(theta/2)
sin(theta/2)是 RV 的數量級。RV 的方向與軸旋轉的方向相同。RV 的三個數值,與cos(theta/2)組成一個四元組。
TYPE_SIGNIFICANT_MOTION 特殊動作觸發感測器。
TYPE_STEP_COUNTER 計步感測器,用於記錄激活後的步伐數。
TYPE_STEP_DETECTOR 步行檢測感測器,用戶每走一步就觸發一次事件。
TYPE_TEMPERATURE 溫度感測器,目前已被TYPE_AMBIENT_TEMPERATURE替代。
⑨ 求安卓下所有感測器的簡介
1 加速度感測器
加速度感測器又叫G-sensor,返回x、y、z三軸的加速度數值。
該數值包含地心引力的影響,單位是m/s^2。
將手機平放在桌面上,x軸默認為0,y軸默認0,z軸默認9.81。
將手機朝下放在桌面上,z軸為-9.81。
將手機向左傾斜,x軸為正值。
將手機向右傾斜,x軸為負值。
將手機向上傾斜,y軸為負值。
將手機向下傾斜,y軸為正值。
加速度感測器可能是最為成熟的一種mems產品,市場上的加速度感測器種類很多。
手機中常用的加速度感測器有BOSCH(博世)的BMA系列,AMK的897X系列,ST的LIS3X系列等。
這些感測器一般提供±2G至±16G的加速度測量范圍,採用I2C或SPI介面和MCU相連,數據精度小於16bit。
2 磁力感測器
磁力感測器簡稱為M-sensor,返回x、y、z三軸的環境磁場數據。
該數值的單位是微特斯拉(micro-Tesla),用uT表示。
單位也可以是高斯(Gauss),1Tesla=10000Gauss。
硬體上一般沒有獨立的磁力感測器,磁力數據由電子羅盤感測器提供(E-compass)。
電子羅盤感測器同時提供下文的方向感測器數據。
3 方向感測器
方向感測器簡稱為O-sensor,返回三軸的角度數據,方向數據的單位是角度。
為了得到精確的角度數據,E-compass需要獲取G-sensor的數據,
經過計算生產O-sensor數據,否則只能獲取水平方向的角度。
方向感測器提供三個數據,分別為azimuth、pitch和roll。
azimuth:方位,返回水平時磁北極和Y軸的夾角,范圍為0°至360°。
0°=北,90°=東,180°=南,270°=西。
pitch:x軸和水平面的夾角,范圍為-180°至180°。
當z軸向y軸轉動時,角度為正值。
roll:y軸和水平面的夾角,由於歷史原因,范圍為-90°至90°。
當x軸向z軸移動時,角度為正值。
電子羅盤在獲取正確的數據前需要進行校準,通常可用8字校準法。
8字校準法要求用戶使用需要校準的設備在空中做8字晃動,
原則上盡量多的讓設備法線方向指向空間的所有8個象限。
手機中使用的電子羅盤晶元有AKM公司的897X系列,ST公司的LSM系列以及雅馬哈公司等等。
由於需要讀取G-sensor數據並計算出M-sensor和O-sensor數據,
因此廠商一般會提供一個後台daemon來完成工作,電子羅盤演算法一般是公司私有產權。
4 陀螺儀感測器
陀螺儀感測器叫做Gyro-sensor,返回x、y、z三軸的角加速度數據。
角加速度的單位是radians/second。
根據Nexus S手機實測:
水平逆時針旋轉,Z軸為正。
水平逆時針旋轉,z軸為負。
向左旋轉,y軸為負。
向右旋轉,y軸為正。
向上旋轉,x軸為負。
向下旋轉,x軸為正。
ST的L3G系列的陀螺儀感測器比較流行,iphone4和google的nexus s中使用該種感測器。
5 光線感應感測器
光線感應感測器檢測實時的光線強度,光強單位是lux,其物理意義是照射到單位面積上的光通量。
光線感應感測器主要用於Android系統的LCD自動亮度功能。
可以根據采樣到的光強數值實時調整LCD的亮度。
6 壓力感測器
壓力感測器返回當前的壓強,單位是百帕斯卡hectopascal(hPa)。
7 溫度感測器
溫度感測器返回當前的溫度。
8 接近感測器
接近感測器檢測物體與手機的距離,單位是厘米。
一些接近感測器只能返回遠和近兩個狀態,
因此,接近感測器將最大距離返回遠狀態,小於最大距離返回近狀態。
接近感測器可用於接聽電話時自動關閉LCD屏幕以節省電量。
一些晶元集成了接近感測器和光線感測器兩者功能。
下面三個感測器是Android2新提出的感測器類型,目前還不太清楚有哪些應用程序使用。
9 重力感測器
重力感測器簡稱GV-sensor,輸出重力數據。
在地球上,重力數值為9.8,單位是m/s^2。
坐標系統與加速度感測器相同。
當設備復位時,重力感測器的輸出與加速度感測器相同。
10 線性加速度感測器
線性加速度感測器簡稱LA-sensor。
線性加速度感測器是加速度感測器減去重力影響獲取的數據。
單位是m/s^2,坐標系統與加速度感測器相同。
加速度感測器、重力感測器和線性加速度感測器的計算公式如下:
加速度 = 重力 + 線性加速度
11 旋轉矢量感測器
旋轉矢量感測器簡稱RV-sensor。
旋轉矢量代表設備的方向,是一個將坐標軸和角度混合計算得到的數據。
RV-sensor輸出三個數據:
x*sin(theta/2)
y*sin(theta/2)
z*sin(theta/2)
sin(theta/2)是RV的數量級。
RV的方向與軸旋轉的方向相同。
RV的三個數值,與cos(theta/2)組成一個四元組。
RV的數據沒有單位,使用的坐標系與加速度相同。