簡體   English   中英

當我訪問方向傳感器(HTC Desire)時,為什么我的Android程序會崩潰?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM