第十二章 感測器

2021-07-03 04:33:25 字數 2158 閱讀 2881

第十二講 感測器

光照感測器、加速度感測器、地磁感測器、壓力感測器、溫度感測器等。

sensormanger sensermanager=(sensormanager)getsystemservice(context.sensor_service);

sensormanager 是系統所有感測器的管理器

sensor sensor = sensermanager.getdefaultsensor(sensor.type_light);

感測器輸出的訊號進行監聽,這就要借助

sensoreventlistener 來實現 了。

sensoreventlistener 是乙個介面,其中定義了 onsensorchanged()和 onaccuracychanged() 這兩個方法,

如下所示:

sensoreventlistener listener = new sensoreventlistener()

@override

public void onsensorchanged(sensorevent event) sensormanager.registerlistener(listener,senser,sensormanager.sensor_delay_normal);

sensormanager.unregisterlistener(listener);

由於地心引力的存在,你的手機無論在世界上任何角落都會有乙個重力 加速度,這個加速度的值大約是 9.8m/s2。當手機平放的時候,這個加速度是作用在 z 軸上 的,當手機豎立起來的時候,這個加速度是作用在 y 軸上的,當手機橫立起來的時候,這個 加速度是作用在 x 軸上的。

onsensorchanged(sensorevent event)

float xvalue=math.abs(event.values[0]);

float yvalue=math.abs(event.values[1]);

float zvalue = math.abs(event.values[2]);

if (xvalue > 15 || yvalue > 15 || zvalue > 15) else if (event.sensor.gettype() == sensor.type_magnetic_field)

float r = new float[9];

float values = new float[3];

sensormanager.getrotationmatrix(r, null, accelerometervalues,

magneticvalues);

sensormanager.getorientation(r, values);

log.d(「mainactivity」, 「value[0] is 」 + math.todegrees(values[0])); }

就將 values 陣列賦值給 accelerometervalues 陣列

accelerometervalues=event.values.clone();

sensormanager.getrotationmatrix(r.null,accelerometervalues,magneticvalues); 為r賦值

sensormanager.getorientation(r, values); 為values賦值

values[0]表示手機圍繞 z 軸旋轉 的弧度,這裡我們呼叫 math.todegrees()方法將它轉換成角度,並列印出來。

float rotatedegree =-(float) math.todegrees(values[0]);

if (math.abs(rotatedegree - lastrotatedegree) > 1) {

rotateanimation animation = new rotateanimation (lastrotatedegree, rotatedegree, animation.relative_to_self, 0.5f, animation. relative_to_self, 0.5f);

animation.setfillafter(true);

compassimg.startanimation(animation);

lastrotatedegree = rotatedegree;

第十二章 檔案

文字檔案 文字檔案是一種由若干字元構成的檔案,可以用文字編輯器進行閱讀或編輯。以txt py html等為字尾的檔案都是文字檔案。2.二進位制檔案 二進位制檔案一般是指不能用文字編輯器閱讀或編輯的檔案。以 mp4 png等為字尾的檔案都是二進位制檔案,如果想要開啟或修改這些檔案,必須通過特定軟體進行...

第十二章 dp

動態規劃策略 將原始問題拆分為多個子問題,將子問題結果記錄,方便復用子問題的解 遞迴 記憶化 遞推 是動態規劃的一體兩面,本質都是一樣的 遞推減少了呼叫次數,空間上還能優化,一般選擇遞推方式 遞迴 記憶化 int memo maxn 將o 2 n o n intfibonacci int n 遞推 ...

第十二章 異常

一 異常的概念 錯誤 編譯器 異常 執行期,程式沒有正常按照期望執行 異常產生時,在對應位置產生異常型別物件,程式 暫停 如果上下文有異常處理程式,對應處理 沒有則 異常向上傳播 報錯退出 異常向上傳播 如果異常在函式中產生,會傳播給函式的呼叫者 如果異常在模組的頂級位置,會傳播給引用該模組的模組 ...