2012-12-07 48 views
3

我想要的: - 我想用我的android設備找到磁鐵。在Android中尋找磁鐵

我所做的尚未: - 我登記我喜歡的類型的磁場傳感器這樣

Sensor magnetometer = mSensorManager 
      .getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); 

onSensorChanged(SensorEvent event)方法我得到的x,y,z的event.value如果類型是磁場。

爲了這一切都很好,然後我從這三個值中獲得絕對值,使用
Math.sqrt((x*x)+(y*y)+(z*z))我得到一個絕對值。
但我想這是唯一的,因爲當我把接近我的設備沒有任何一個磁鐵發生(無論絕對值還是其(X,Y,Z)的變化。

感謝。

+4

這可能是硬件故障。你確定你的設備在工作嗎?您是否嘗試過使用磁場的其他應用程序?這第三部分的應用程序工作?你有沒有在另一臺設備上試用你的代碼? – AlexBottoni

回答

0

我與設備假設你的設備不測量你的磁體,而是測量地球的磁場,並且當你用這種方法連接數值時,與設備的方向無關,你總是會得到相同的值,除了返回值總是0,你只是沒有測量​​任何東西,它可能是一個硬件故障。

0

我也是Android開發新手,並有興趣創建一個類似的應用程序,我得到通知時,磁鐵充分接近我的手機。

我使用了相同的公式計算淨磁場,如果你參考這個Android文檔關於傳感器管理器here,你會發現地球磁場的MAX和MIN值。

我的應用程序使用相同的範圍來檢測磁鐵,它工作正常。根據您所需的「promixity」,您可以根據需要調整值。

如果在磁場更靠近時沒有發現磁場值有任何顯着差異,我認爲這是一些硬件問題。