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
}











