What API in Android is used to make reliable audio calls in custom app?
I see for example in WhatsApp, that it gets notification about incoming call (probably from Firebase?), and then acts like "real call" (you can see active call within Bluetooth headset interface, which you can accept, reject or hang up, and if someone calls you via classic voice call, it will be automatically hanged up as busy). I didn't found any documentation about this, and found only full-fledged SDKs.
When investigating Android features, it may help to look at the Android Open Source Project site: https://source.android.com/
What you are asking for appears to be 'Third Party Calling App':
https://source.android.com/devices/tech/connect/third-party-call-apps
That document even links to a page on the main Android Developer site should you wish to build a voice call app:
https://developer.android.com/guide/topics/connectivity/telecom/selfManaged
Related
I have a nativescritp app, which receive phone calls.
When the app is not running on foreground, it still receives the calls, which is fine.
What I need to do is to "load" / "run" / "show" the application on the screen, so the user can answer the phone call or decline it.
It may not be quite straight forward as building an app and there are no ready made plugins available to achieve this.
For iOS you will have to implement CallKit and for Android you will have follow the set of procedures explained here.
FYI, with iOS your normal code won't run any longer if app is minimised. With Android you will have to implement the android.telecom.ConnectionService as explained in the link above, refer onShowIncomingCallUi() for showcasing UI for the call.
If you are not proficient with marshalling native code (iOS & Android) then I would suggest you to start there.
I have implemented the Twilio in my app and have made it so that web to web calls can be made and also web to phone calls. The only thing is that if I call Voice.call() with my user's phone number, it'll call him but the call will not open my activity on his device. The phone call UI will be the default decide's UI for incoming calls. If I, on the other hand, use the user's defined identity on his device, it'll go nicely via my activity.
Any ideas on how I can make the web to phone call using a phone number and redirect the call via my activity?
I have been unable to find any documentation in this regard.
Cheers!
Twilio developer evangelist here.
It's not the job of the Twilio SDK to intercept phone calls made directly to the device. However, since Android is flexible enough to replace the default phone application, you can do this yourself.
I am not an Android developer however, but a quick search around lead me to this tutorial on using a BroadcastReceiver to run your own code when an incoming phone call occurs. This StackOverflow answer might help you get started too.
Hope that helps.
Hey does anyone know if it's possible to intercept incoming calls via an app for both IOS and Android (no jailbreak) then based on certain criteria the phone takes action?
Have already read a few posts saying it's not possible however they are quite old, anyone know of anything new?
Thanks!
The short answer:
On Android: You can do this, but this may require special treatment for different vendors and/or OS versions. It won't be simple to support all (or at least most) devices, but with a lot of manual trial and error, it can be done.
On iOS: It's not possible locally, as Apple sees it as an invasion to the user's privacy.
The (slightly) longer explanation:
What is possible, for both iOS and Android, but will probably require a lot more work and external support than you originally planned, is to divert the calls via a server. This way, when someone calls you, the call is "stolen" by the server (which the user has to manually allow when installing the app) and the call is received on your device as a VOIP call, allowing the app (on the server side) full control over the call (which ones are actually received on the device, what's played, how long, recording, etc). You can see this app for an example of how it works: https://yallo.com/.
I hope this helps. Good Luck.
I'm making an app that will work with Android Wear,
And I wanted to implement a command into Google's "Ok Google" option.
I saw this page:
http://developer.android.com/training/wearables/apps/voice.html
But it's related only to apps that include Activities in the Android Wear.
I wanted to ask:
Can I add custom commands? I mean, those who does not start with the word "Start"?
Can I add commands that will do another thing than just opening the app? Like running a method?
If it's not the place to ask this, can you give me an email/link to Google Developers help/support? thanks.
For apps that run on the Android Wear Device:
No, the list of system-provided voice actions is fixed (and listed here). You can set your application to be able to respond to them (for example, to take a note), but you cannot add new ones.
Yes. When already inside your app, you you can use startActivityForResult() using the ACTION_RECOGNIZE_SPEECH to get voice input. You could then use the returned string to execute whatever you want.
Meanwhile, if you're just displaying notifications from an Android app running in a handheld, then you cannot presently have voice actions at all (at least in a literal sense). What you may have, though, is a notification action that requests voice input. That input will then be passed as an extra in the Intent that is delivered to the app in the handheld.
I have a requirement where I would want to initiate and manage GSM calls (Like the ones we make via Phone)
I will be connecting to a GSM Module/DTMF Module (context: robotics) via this method and would be sending instructions via DTMF tones.
I don't want to open up the phone dialer via an Intent with tel: data, would rather want to manage the telephony myself.
First thought that the system might not allow a third-party app, without a signature matching system's signature, to do telephony stuff, but then I wondered how some of the apps available in the market are doing it. (I'll attach links as soon as I find suitable ones)
EDIT: The apps that I had seen, were launchers and call manager apps, and once installed, had replaced my default phone apps (and thus were making calls instead of the default phone app doing it)
EDIT: I have found this question asking something similar, and also has an answer: Android Dialer application. I'll try this out and post back if I get any success.
Any pointers will be greatly appreciated.