2014-04-13 4 views
1

배경에서 전화를 감지하고 특정 번호를 통화 기록에서 삭제하고 싶습니다. 다음은 내가 고려한 옵션입니다. 이 중 하나가 더 나은/실행 가능한 솔루션인지 알려주십시오.특정 번호의 안드로이드 전화 로그를 지우십시오.

  1. 전화 상태 방송 수신기를 등록하십시오. onReceive의 통화 기록에서 번호를 삭제하십시오. 문제는이 지점에서 통화 로그가 업데이트되지 않았을 수 있으므로 삭제가 효과가 없음을 의미합니다.

  2. 전화 상태 방송 수신기를 등록하십시오. onReceive에서 어떻게 든 지연을 추가하고 잠시 후 통화 기록을 삭제하려고합니다. 지연으로 인해 시스템은 통화 로그 항목을 추가 할 수있는 충분한 시간을 갖게됩니다. 이 접근법은 나에게 약간 해킹 된 것처럼 보였지만 그다지 심각하지는 않습니다.

  3. 전화 상태 방송 수신기를 등록하십시오. onReceive에서는 통화 기록을위한 콘텐츠 관찰자를 등록합니다. 내 이해는 수신 후 프로세스가 언제든지 죽을 수 있으므로 프로세스가 종료되면 내용 관찰자 onChange가 호출되지 않습니다.

  4. 전화 상태 방송 수신기를 등록하십시오. onReceive에서 내 서비스를 시작합니다 (아직 실행 중이 아닌 경우). 그러면 컨텐츠 관찰자가 등록됩니다. 내용 관찰자 onChange에서 특정 번호와 일치하는 통화 로그 항목을 삭제합니다.

감사합니다,

답변

1

옵션 4 그것을 할 수있는 완벽한 방법입니다. 작업을 마친 후에 서비스를 중단하고 필요할 때마다 브로드 캐스트 리시버가 다시 시작하도록하는 것이 좋습니다.

편집 : BroadcastReceiver는 작거나 가벼운 작업을 수행하기위한 용도로만 사용되므로 여기서는 지연을 선택할 수 없습니다. :)

+0

감사합니다. ashu 덕분에 옵션 3이 이제 옵션 4가되도록 질문을 업데이트했습니다. –

+0

답변을 편집했습니다! – ashu

+0

나는이 게시물의 라인을 따라 생각하고 있었다. http://stackoverflow.com/questions/8216920/how-to-stop-phone-calls-to-be-log-in-the-call-log-on-android ? rq = 1 –