2011-10-01 4 views
1

며칠 전 Android에서 첫 번째 앱을 만들었습니다. 기본 개념은 근접 센서를 모니터링하는 것입니다. 센서에 장애물이있는 경우 카운터를 증가시킵니다. 카운터가 임계 값을 초과하면 작업을 트리거합니다.Android 2.3.6 업데이트 후 센서 관리자가 예상대로 작동하지 않습니다.

센서 모니터링 소프트웨어를 서비스에 구현 한이 서비스는 매 10 분마다 활동에서 호출되므로 CPU를 깨우고 서비스가 중지 된 경우 서비스를 시작합니다.

모든 것이 완벽했기 때문에 시장에서 좋은 평가를 얻은 수천 가지 다운로드가있었습니다. 안드로이드 2.3.3까지 괜찮 았어. 최근에 내 모바일이 Android 2.3.6으로 업그레이드되었으며 불행히도 앱이 예상대로 작동하지 않습니다.

화면이 꺼져있을 때 센서 수신기가 트리거되지 않습니다. 때로는 제대로 작동하지만 대부분의 경우 작동하지 않습니다. 센서에 여러 입력을 한 후 잠시 후 화면을 켜면 센서의 모든 트리거가 자동으로 호출되고 카운터가 증분되어 동작을 트리거합니다.

요약하면 화면이 꺼지면 (Android 2.3.6에서는) 센서 리스너가 작동하지 않습니다. 안드로이드 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(); 
} 
} 
+0

날이 문제를 해결하기 위해 도와주세요 .. – Raghavendra

+0

마지막으로 문제를 해결했습니다. 서비스에서 wakelock도 얻으십시오. – Raghavendra

+0

답변이 있으시면 다른 사용자의 이익을 위해 게시하고 수락하십시오. 따라서이 질문은 "답이 없음"으로 떠오르지 않을 것입니다. – EboMike

답변

관련 문제