2011-03-08 5 views
2

엑스트라를 호출하여 전달하는 데 문제가 있습니다.BroadcastReceiver에 엑스트라를 전달하는 방법

전화를 시작하고이 목적을 위해 엑스트라를 설정

:

내가 할 의도 무엇을 더 명확하게합니다. 나는 브로드 캐스트 리시버에 "캐치"전화를 구현하고 활동을 시작할 때 내가 설정 한 추가에 액세스 할

Intent dialIntent=new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + this.number)); 
dialIntent.putExtra("foo", true); 
startActivity(dialIntent); 

:이처럼이 내 현재 코드는 모습입니다. 이것은 내가 내 매니페스트에있는 것입니다 :

<receiver android:name=".CallReceiver"> 
    <intent-filter android:priority="1"> 
    <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> 
    </intent-filter> 
</receiver> 

는 불행하게도 내 CallReceiver에 전달되는 의도는 NEW_OUTGOING_CALL 의도이다.

내가 원하는 것을 분명히하고 희망적이라고 생각합니다.

미리 감사드립니다.

답변

1

여기서 BroadcastReciever를 사용하는 대신 다른 '기본 전화 걸기'활동을 실제로 만들고 싶지만 기본 다이얼러 응용 프로그램보다 먼저 실행되도록하려면 우선 순위가 높아야합니다. 그러면 다음과 같이 의도를 바꿀 수 있습니다.

public void onCreate(Bundle b){ 
    Intent i = getIntent(); 
    //alter i here 
    startNextMatchingActivity(i); 
} 

희망이 도움이 되셨습니다. 이 `<액션 안드로이드 : 이름 = "android.intent.action.CALL"/>` 하지만 여전히 작동하지 않습니다, 나는 단지 NEW_OUTGOING_CALL 조치를받을

+0

내가는 NEW_OUTGOING_CALL 액션 선 위에이 줄을 추가 –

+0

@Zoran Zaric 덧붙여서 '도 덧붙이겠습니다. – schwiz

+0

@Zoran Zaric 미안 해요. 내가 무슨 생각을하고 있었는지 잘 모르겠군요. 수신자는 startActivity가 sendBroadcast가 아니기 때문에 이것을 선택하지 않습니다. 여기서 무엇을하려고합니까? 앱에서 만든 모든 통화 또는 통화 만 가로채시겠습니까? – schwiz

관련 문제