[英]Why does my Android program crash when I access the Orientation sensor (HTC Desire)?
因此,我在玩弄Android API,並試圖弄清楚如何獲得手機所指向的方向。
我有以下代碼:
private SensorManager mSensorManager;
private Sensor mAcceller;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
checkNotNull(mSensorManager);
try {
mAcceller = mSensorManager.getSensorList(3).get(0);
} catch (Exception e) {
showToast(e.getMessage(), Toast.LENGTH_LONG);
}
}
但是,當我嘗試在手機上運行它時,我僅收到一條消息,提示程序已崩潰。 當我在仿真器中運行它時,它告訴我沒有傳感器(這是可以預期的,但這意味着我無法測試代碼)。
有人知道如何解決此問題嗎? 我知道該錯誤在try語句中發生,因為如果我將其注釋掉,程序將運行。
編輯 :原來我是個白痴,當我空引用代碼中的其他地方時發生崩潰,是作為對收到傳感器已打開的通知的響應。
戴夫(Dave)如果您將評論升級為答案,我會將其標記為已接受(因為我一想到調試器的工作原理就發現了問題)。
首先,不贊成使用方向傳感器。
其次,使用Sensor
TYPE_
常量而不是您自己的整數。 例如:
mSensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.