简体   繁体   中英

There is any Android API to record call conversation and/or automatically answer calls?

Scanned through the Android API (reference) documentation, but didn't find specific API that allows one to achieve the following:

  1. Be notified of an incoming call
  2. Automatically answer or reject the incoming call
  3. While a call is in progress, be able to capture the audio
  4. Play a pre-recorded message, after answering the call

The intention behind the questions, as most might have guessed, is to have an automated answering machine type of application. I have seen such applications on Nokia Symbian OS devices.

If such functionality requires rooting the device, I'd still be interested in knowing the API's available once rooted!

As an aside, is there are separate API reference documentation for API's available to rooted devices ?

For the latter parts of your question, No.

Imagine for a second there was, and you had an app installed that uses it. It could record your conversations and send them to a 3rd party. The app might not even disclose that it does this.

That sounds like it would be a huge security problem... Don't you agree?

It would appear I am mistaken about the call recording part - several apps available on google play (such as this , this , and this ) does call recording, at least of the user making the call.

For #1, this is covered by marcin_j's answer

For #2, these SO answers show you can accept or reject a call programmatically.

For #3, I did a bit more detailed search on this, which reveals a related Stackoverflow question and answer , which provides info on recording audio (as per the above linked apps). Please keep in mind there are likely legal requirements around recording calls.

For #4 (playing a message to the caller), the only info I was able to find on this says it is not supported . It's hard to find much more info on this with so much clutter on search coming up with apps that are basically an audio version of caller id.

Most of these answers are on StackOverflow already; hopefully bringing it all together here helps you.

  1. You can use android.intent.action.PHONE_STATE broadcast, and check TelephonyManager.CALL_STATE_RINGING state. Requires android.permission.READ_PHONE_STATE .

2/3. Dont think you can do this, at least not on non-rooted phones. Maybe someone else will give better answer.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM