How to detect and manage incoming call (Android)?
Asked Answered
L

2

3

I want to create an application that can detect incoming calls and start my custom activity after a certain number of beeps (rings), I mean after 2 or 3 or 5 beeps (rings) my activity is triggered. How can I do it?

Thanks

Lacteal answered 7/7, 2011 at 12:39 Comment(6)
im sorry I dont not understand your question. could you re word it or give an example.Mahler
Okay dude , i want to speak clearly , well i want to make a answering machine and i want to when anyone call my phone after 2 or 3 beep my activity will be start , how can do it?Lacteal
@Pars - I'm including a very good SO link that should help you with this task. Check it out - #6036795.Vachil
You want to block the Calls? Or Just want to start an Activity/Service while Incoming call arrives?Alexalexa
@Vaibhav Jani start an Activity/Service while Incoming call arrivesLacteal
@Pars #5949461Alexalexa
P
4

I don't think you can count the number of rings the phone made since the start of the incoming call. There can't be a definitive measure of a single ring because the user can easily change the ringtone to a non-repetitive tune, for example, a song.

What you can do, however, is count the amount of time that passed since the arrival of the call. Set up a BroadcastReceiver for PHONE_STATE (you will need the corresponding permission in the manifest to receive the event). Once you receive the EXTRA_STATE_RINGING that came with the PHONE_STATE, set an alarm via the AlarmManager that will fire a Service that checks if EXTRA_STATE_OFFHOOK (broadcast when the call is picked up) has been broadcast after your waiting time. If not, then you can start your answering machine.

I have written a quick tutorial in my website on how to catch the call's arrival (when the phone rings), when the call is picked up, and when it ends.

Progestin answered 18/10, 2012 at 11:1 Comment(0)
I
4

My article about detecting incoming and outgoing calls, with the step-by-step instructions: Detecting incoming and outgoing phone calls on Android

When you detect incoming call, you can start a timer, with interval equal to beepInterval * beepCount. And launch activity on this timer.

Indeciduous answered 22/1, 2013 at 5:55 Comment(1)
Thanks for posting your answer! Please be sure to read the FAQ on Self-Promotion carefully. Of particular note, please keep in mind what the FAQ says about if the majority of your posts contain links to your website.Terri

© 2022 - 2024 — McMap. All rights reserved.