2016-06-08 2 views
0

안녕 프로그래밍 방식으로 프로그래밍 방식으로 정적 방송 수신기를 만드는 방법은 무엇입니까? 거기 recievers 사용하는 방법은 두 가지이다라는 문서에서프로그래밍 방식으로 정적 안드로이드 방송 수신기를 만들

: 매니페스트를 통해

  1. 등록 (정적 및 응용 프로그램이 실행되지 않을 때 사용할 수 있습니다)
  2. 등록 응용 프로그램 컨텍스트를 통해 (동적 할 수 있습니다 만 활동/응용 프로그램이 실행중인 동안에 만 사용하십시오)

정적 수신기를 프로그래밍 방식으로 등록하는 방법을 찾지 못했습니다. 이것을 할 수있는 방법이 없습니까?

+0

달성하고자하는 것은 무엇입니까? – earthw0rmjim

답변

1

런타임에 매니페스트를 수정할 수 없습니다. 따라서 런타임에 "정적"수신기를 등록 할 수 없습니다.

사용자 런타임에 매니페스트 등록 수신기를 활성화 및 비활성화 할 수 있습니다. <receiver> 요소의 android:enabled 속성을 시작 상태를 원하는대로 설정하십시오 (예 : 사용 중지 된 경우 false). 그런 다음 PackageManagersetComponentEnabledSetting()을 사용하여 런타임에 해당 사용 가능 상태를 변경하십시오. 비활성화 된 수신자는 브로드 캐스트에 응답하지 않습니다.

+0

멋진 감사합니다. – jonney

1
//For dynamic execution 
@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     reciever = new IncomingCallReciever(); 
     IntentFilter filter = new IntentFilter(); 
     filter.addAction("android.intent.action.PHONE_STATE"); 
     registerReceiver(reciever, filter); 

    } 


    @Override 
    protected void onDestroy() { 
     if (reciever != null) { 
      unregisterReceiver(reciever); 
      reciever = null; 
     } 
     super.onDestroy(); 
    } 
관련 문제