2013-04-19 2 views
2

내 응용 프로그램에서 Tasker 지원을 구현하려고합니다. 매니페스트 파일에 인 텐트 필터를 선언하고 리시버를 작성했지만 작동하지 않습니다 (아무것도 기록되지 않고 내 앱이 이러한 의도에 반응하지 않습니다).BroadcastReceiver가 외부 인 텐트에서 반응하지 않습니다.

나는이 같은 TASKER에서 의도를 전송 테스트 한 :

ACTION: START_SERVICE

package: com.example.appname

매니페스트 선언 :

<receiver android:name="ExIntentReceiver"> 
    <intent-filter> 
    <action android:name="com.example.appname.START_SERVICE" /> 
    <action android:name="com.example.appname.STOP_SERVICE" /> 
    </intent-filter> 
</receiver> 

수신기 :

Public class ExtIntentReceiver extends BroadcastReceiver { 


@Override 
    public void onReceive(Context context, Intent intent) { 
     String action = intent.getAction(); 
    if(action.equals("com.example.appname.START_SERVICE")) { 
     Log.v("service", "is started"); 
     } else if(action.equals("com.example.appname.STOP_SERVICE")) { 
      Log.v("service", "is stopped"); 
     } 

    } 

} 
,536을
+0

다른 응용 프로그램에서 브로드 캐스트 메시지를 보내시겠습니까? – stinepike

+0

예, 작업자입니다. – Kristopher

+0

ExtIntentReceiver가 내부 인 텐트에 반응합니까? – andrew

답변

1

사실 나는 이유가 될 수있는 한 곳을 본다. 인 텐트를 보낼 때 com.example.appname이라는 패키지 이름을 지정하지만 AndroidManifest.xml에 지정된 내용은 무엇입니까? 인 텐트에서 패키지 이름을 사용하는 경우이 이름은 수신 앱의 AndroidManifest.xml 양식과 일치해야합니다.

+0

AndroidManifest.xml에 선언 된 패키지 이름도 com.example.appname – Kristopher

+0

@soulreaver 인 텐트를 만들고 브로드 캐스트를 보내는 코드 스 니펫을 제공하십시오. 엑스트라를 보내고 있습니까? 또한 나는 'ACTION : START_SERVICE'에 실제로 "START_SERVICE"(으)로 행동을 보내고 있습니까? 전체 작업 이름을 "com.example.appname.START_SERVICE"로 사용해야하기 때문입니다. – andrew

관련 문제