IT/Android
[Android]전화 발신(outgoing call) 이벤트 Receiver로 받기
Kanzler
2017. 4. 7. 07:00
개발을 진행 하다 보면 전화 발신 시에 특정 이벤트를 처리 해야 하는 경우가 생기게 됩니다. 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로 콜백이 발생 합니다. 이후 처리 해야 하는 비지니스 로직이 있다면 처리 하시면 됩니다.