2011-08-09 4 views
0

배터리 부족, 비행기 모드 사용, wifi 비활성화와 같이 시스템에서 브로드 캐스트 한 여러 인 텐트를 기반으로 알람을 활성화/비활성화하려고합니다.여러 방송 인 텐트를 사용하여 동일한 것을 제어하기

매니페스트에 필요한 인 텐트를 등록하고 BroadcastReceiver으로 간주하고 수신 된 인 텐트를 기반으로 알람을 설정하려고합니다.

인 텐트 중 하나만 브로드 캐스트되는 동시에 등록 된 인 텐트가 나타내는 모든 조건을 어떻게 고려해야합니까?

예 : "배터리 OK"인 텐트가 브로드 캐스팅됩니다.이 경우 정상적으로 알람을 다시 활성화하지만 비행기 모드가 켜져 있으면 활성화하지 않습니다.

각 조건의 상태를 공유 환경 설정으로 유지하려고 생각했지만 완전히 깨끗한 해결책으로 보이지 않습니다.

일부 인 텐트는 끈적 거리기 때문에 언제든지 얻을 수 있지만 BroadcastReceiver에 브로드 캐스트 인 텐트를 등록 할 수 없기 때문에 다른 인 텐트 중 하나가있을 때 상태를 파악할 수 없습니다. 보냈습니다.

제안 사항?

답변

0

내가 제대로 질문을 받았다면, 당신은 당신이

IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON); 
     filter.addAction(Intent.ACTION_BATTERY_CHANGED); 
     filter.addAction(Intent.ACTION_SCREEN_OFF); 
     BroadcastReceiver mReceiver = new Receiver(getApplicationContext()); 
     registerReceiver(mReceiver, filter); 

같은 다수의 의도에 등록 할 수 있습니다 및 recevier에 지금

public void onReceive(Context arg0, Intent intent) { 
     // TODO Auto-generated method stub 

     if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { 


     } 

     else if (intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)) { 
     } 
같은 방송 있는지 테스트 할 수 있습니다이 을 찾고있을 수 있습니다
+0

사실 내 질문을 설명하기가 어려웠다. 여러 사건에 등록하는 법을 알고 있지만, 나의 질문은 답을 따르면 다음과 같은 순간에 배터리의 상태를 알 수있는 가장 좋은 방법은 무엇인가하는 것이다. 'ACTION_SCREEN_OFF' 의도가 방송 되나요? –

+0

브로드 캐스트 리시버 없이도 언제든지 배터리 상태를 알 수 있으며 실제로는 이전에 브로드 캐스팅 된 리딩을 얻을 수 있습니다. 그러나 이것은 다른 경우에 해당하지 않습니다. – Rasel

+0

예, "일부 의도가 끈적임"이라는 의미입니다. 어쩌면 나는'PendingIntents'를 사용하여 나중에 원래의 브로드 캐스트 인 텐트의 데이터를 검색 할 수 있습니다. –

관련 문제