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 }