2012-10-17 45 views
0

我有一個廣播接收器的手機狀態變化,而當電話狀態是「摘機」,我註冊的接近傳感器的事件監聽。當鄰近地區發生變化時,我會做一些事情(爲此,我會在服務中進行註冊和「某些事情」)。到目前爲止,一切都按預期工作問題在於,當接近度值爲'CLOSE'時,屏幕未被鎖定。我認爲這是因爲我的聽衆正在接近接近改變事件,所以手機的默認應用程序沒有收到事件。有沒有辦法傳遞事件,如按鈕的onClickListener()中的'return false'。如何通過對接近改變事件

編輯:

代碼

在服務

 myProximitySensor = mySensorManager 
       .getDefaultSensor(Sensor.TYPE_PROXIMITY); 
     mySensorManager.registerListener(this, myProximitySensor, 
      SensorManager.SENSOR_DELAY_NORMAL); 

我實現了SensorEventListener的OnCreate,並在它的onSensorChanged()方法:

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
    audioManager.setSpeakerphoneOn(true); 
+0

你能請張貼一些代碼? – Ridcully

+0

與您認爲鄰近事件不會消耗的情況相反。所有註冊的eventListeners都會收到該事件。所以沒有必要「傳遞」。也許應用程序/服務保持在喚醒設備屏幕的wakelock上。嗯?... – TheCodeArtist

+0

@TheCodeArtist感謝reply.Do你覺得調用從廣播接收器的服務導致了問題? – Savin

回答

0

如果你想鎖定你的屏幕時,接近聽衆變化 你可以有PowerManager.WakeLock 的一個實例,並調用獲得它來鎖定sceen 然後呼叫釋放解鎖屏幕再次

+0

歡迎來到堆棧溢出。請複習[我如何寫出一個好答案](https://meta.stackexchange.com/questions/7656/how-do-i-write-a-good-answer-to-a-question)。 – Rick