幾天前,我在Android上發佈了我的第一個應用程序。基本的概念是監測接近傳感器,如果傳感器有障礙物,我會增加一個計數器。如果櫃檯超過門檻,我會觸發一個動作。Android 2.3.6更新後傳感器管理器無法正常工作
我已經在一個服務中實現了傳感器監控軟件,這個服務從一個活動中每10分鐘調用一次,以喚醒cpu並在服務停止時啓動服務。
一切都很完美,在市場上有好幾千的下載量和良好的評價。在Android 2.3.3之前這很好。最近我的手機升級到Android 2.3.6,不幸的是該應用程序沒有按預期工作。
當屏幕關閉時,傳感器監聽器不會觸發。有些時候,它工作的很好,大部分時間都不起作用。在傳感器給出幾個輸入後,如果我打開屏幕一段時間後,傳感器上的所有觸發器都會自動立即被調用,並且計數器遞增並觸發該動作。
總之,當屏幕關閉(在Android 2.3.6)時,傳感器偵聽器不工作,直到Android 2.3.3才能正常工作。如果我連接調試器,手機不會進入睡眠狀態,並且一切正常,所以我無法找到問題。請幫幫我 。
這是我的代碼。在服務
每10分鐘調用服務..
Thread trd = new Thread(){
public void run(){
int sec = 1000;
int min = 60 * sec;
Calendar cal = Calendar.getInstance();
alarmMngr.setRepeating(AlarmManager.RTC_WAKEUP,
cal.getTimeInMillis(),
10 * min,
PendInt);
}
};
trd.start();
在服務..
// On sensor change
public void onSensorChanged(SensorEvent event){
if(event.sensor == SnsrProx){
if(event.values[0] <= 5){
IncProxCntr(1);
}else{
IncProxCntr(0);
}
}
}
private void IncProxCntr(int x){
if(x == 1){
FakeCall_SnsrCnt++;
vibrate(VIBRATE_SHORT);
}
if(FakeCall_SnsrCnt >= Settings.getMaxSnsrCnts(this)){
Trig_IncominCall();
}
}
請幫我解決這個問題.. – Raghavendra
最後我解決了這個問題。在服務中獲取喚醒鎖也... – Raghavendra
如果您有答案,發佈並接受它爲了他人的利益,所以這個問題不會浮現爲「未答覆」。 – EboMike