2013-07-07 3 views
0

Android 개발에서 새로 생겼습니다. 전화 번호에 접두사를 추가하는 응용 프로그램을 만들고 싶습니다.이 결정은 일부 매개 변수에 따라 달라집니다.Android 서비스가 될 예정입니까?

사용자가 알고 싶어하지만 그것에 대해 아무 것도 할 필요가 없습니다. 응용 프로그램이 설치되고 사용자가 전화하기를 원하면 접두사가 추가 될 것임을 알 수 있습니다. 그들이 말하는 전화 번호로.

1)는 것입니다 :

문제는 오히려 번호로 전화를 걸어에 접두사를 추가 할 (즉 또한 내가 알고 싶은거야,하지만,하지만 난 그것에 대한 기사를 발견했다),하지만 어떻게하지 서비스가 되겠습니까?

2) 그들은 그것에 대해 아무것도 할 필요가 없습니다 있도록이 "예"를 눌러처럼 (그것에 접두사를 추가하여 호출 번호를 변경하고 사용자에게 변경된 번호를 표시하는 것입니다 , "아니오"라고 표시)? 발신 통화를 배치하는 것입니다 :

답변

2

당신은 Intent.ACTION_NEW_OUTGOING_CALL

방송 활동에 등록해야한다. - 원래 전화를 건 의도 전화 번호

EXTRA_PHONE_NUMBER :

목적은 다음과 같은 별도의 값을 갖게됩니다. 브로드 캐스트가 끝나면 resultData는 실제 번호로 호출됩니다. null의 경우, 호출은 행해지 지 않습니다.

그것은 다수의 수신기가 차례로 발신 전화를 처리하기에 충분히 수용 할 수 있습니다 : 예를 들어, 보호자 제어 응용 프로그램 후, 수 재 작성 응용 프로그램 사용자가 그 시간에 전화를 걸 수있는 권한이 있는지 확인 수 하나가 지정되지 않은 경우 지역 번호를 추가 할 수 있습니다. 일관성

는 그 어떤 목적 수신기는 0의 우선 순위를 가져야 전화 금지가 최종 전화 번호를 다이얼링 할 볼 수 있도록하는 것이다. 전화 번호 번호를 다시 쓰는 것이 목적 인 모든 수신자는 긍정적 인 우선 순위를 가져야합니다. 음수 우선 순위는이 브로드 캐스트의 시스템 용으로 예약되어 있습니다. 을 사용하면 문제가 발생할 수 있습니다.

이 의도를 수신하는 모든 BroadcastReceiver가 브로드 캐스트를 중단하지 않아야합니다.

비상 호출은이 메커니즘을 사용하여 가로 챌 수 없으며, 다른 호출이 메커니즘을 사용하여 비상 전화를 걸 수정할 수 없습니다.

일부 앱 (예 : VoIP 앱)은 발신 전화 을 리디렉션하여 대신 자신의 서비스를 사용할 수 있습니다. 이러한 앱은 먼저 resultData를 null로 설정하여 호출을 금지하고 전화를 걸기 위해 자신의 앱을 시작해야합니다.

인 텐트를 수신하려면 PROCESS_OUTGOING_CALLS 권한이 있어야합니다.

이것은 시스템에서만 보낼 수있는 보호 된 의도입니다.

상수 값 : "android.intent.action.NEW_OUTGOING_CALL"

+0

을하고 내가 서비스로 구축해야합니까? –

+0

아니요 프로세스가 오래 걸리지 않는 한 브로드 캐스트 수신기를 사용할 수 있습니다 –

+0

아니요 브로드 캐스트 리시버에 프리픽스를 추가하기 만하면 안됩니다. –

관련 문제