Android BroadcastReceiver: Yapılan Çağrıları Yakalama (detect outgoing phone call event)

Android uygulamamızda giden telefon araması olayının nasıl yakalanacağını gösterelim.
Çağrı başlatılırken yakalamak için BroadcastReceiver gerekli ve bunu oluşturmak için ilgili adımlar şunlardır:

1. OutgoingCallBroadcastReceiver Oluşturma
Yapılan çağrıları yakalayacak ve ele alacak bir BroadcastReceiver oluşturalım:

public class OutgoingCallReceiver extends BroadcastReceiver {
	@Override
	public void onReceive(Context context, Intent intent) {
		Log.d(OutgoingCallReceiver.class.getSimpleName(), intent.toString());
		Toast.makeText(context, "Outgoing call catched!", Toast.LENGTH_LONG).show();
		//TODO: Handle outgoing call event here
	}
}

2. AndroidManifest.xml içinde OutgoingCallBroadcastReceiver Ekleme

Yeni oluşturulan BroadcastReceiver android.intent.action.NEW_OUTGOING_CALL eylemlerini bekleyecek. Aşağıdaki kodu AndroidManifest.xml dosyasına ekleyin:

<receiver android:name=".OutgoingCallReceiver" >
	<intent-filter>
		<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
	</intent-filter>
</receiver>

3. AndroidManifest.xml Dosyasında İzin Ekleme

Uygulamanızın şimdi PROCESS_OUTGOING_CALLS izni için istekte bulunması gerekiyor.
Bu isteği AndroidManifest.xml dosyasına ekleyin:

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>

4. Arama Yapılan Telefon Numarası

String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);

Yukarıdaki satırı OnReceive metoduna ekleyelim. Hepsi bu kadar 🙂

@Override
public void onReceive(Context context, Intent intent) {
	String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
	Log.d(OutgoingCallReceiver.class.getSimpleName(), intent.toString() + ", call to: " + phoneNumber);
	Toast.makeText(context, "Outgoing call catched: " + phoneNumber, Toast.LENGTH_LONG).show();
	//TODO: Handle outgoing call event here
}

Bir yanıt yazın

E-Posta adresiniz yayınlanmayacaktır.