티스토리 뷰

개발을 진행 하다 보면 전화 발신 시에 특정 이벤트를 처리 해야 하는 경우가 생기게 됩니다. Android에서는 이러한 발신 상황에서 해당 이벤트에 대해 Receiver로 받아 처리 할 수 있습니다.


아래는 발신시 Receiver로 받는 간단한 소스 입니다.


OutgoingReceiver.class


1
2
3
4
5
6
7
8
public class OutgoingReceiver extends BroadcastReceiver { 
 @Override
 public void onReceive(Context context, Intent intent) {
     String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
     Toast.makeText(context,"Outgoing: "+number,Toast.LENGTH_LONG).show();
     //이후 처리 내용...
 }
 }
cs


AndroidManifest.xml에 추가


1
2
3
4
5
6
7
<!--receiver를 받기 위해 intent filter를 설정 -->
<receiver android:name=".OutgoingCallReceiver" >
<intent-filter>
    <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
<!-- 발신 권한을 위한 permission 등록--> 
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
cs


위와 같이  코드를 처리 하면 전화 발신 시에 등록된 receiver로 콜백이 발생 합니다. 이후 처리 해야 하는 비지니스 로직이 있다면 처리 하시면 됩니다.


댓글