I have done some research on Voice Chat using Bluetooth and have gone through the Bluetooth article here http://developer.android.com/guide/topics/connectivity/bluetooth.html but couldn't found anything related to Voice Chat.
I have seen an application on Play Store (https://play.google.com/store/apps/details?id=com.okean.btcom) providing same functionality that means Voice Chat is possible using Bluetooth in Android.
I have also seen Session Initiation Protocol (SIP) provides Voice Chat Service but it uses Internet data. I want it over Bluetooth.
Any help would be appreciated.
On a motorcycle or loud boat a headset would provide clear communications within Bluetooth range. Yelling is impractical and stressful.
Motorcycle comm systems often use BT, but the systems are designed to work on helmets and are propietary. There are instances in a high noise environment where a BT headset or earpiece would be more practical.
An app on a phone or some sort of Bluetooth hub could work in high noise confined environment.
If you are in bluetooth range, why not just voice chat over air? as in sound pressure, aka human speech?
Related
I am about to create an "Intelligent" motorcycle helmet which will be able to play music, discuss with the passenger, send GPS information, notify of police, speech recognition etc... I have a few options to make this helmet like including an individual microprocessor for each helmet or connecting both passenger and driver helmet's microphone and speaker to a single Android phone, my question is; is it possible, to connect to 2 speaker and 2 microphones with Bluetooth and retrieve their informations individually (Like one thread per microphone and being able to send audio to a specific speaker). This could be the best solution for my problem so I don't need to worry about microprocessors and batteries inside the helmet, everything could be processed remotely by the driver's phone which would receive and send data to the individual speakers and microphones.
Thank you very much for your answers!
Best regards, Julien
You can only have a single Bluetooth connection. So you cannot connect two Bluetooth speakers at the same time. instead, you can use RF like the walkie-talkie in a half-duplex( only driver can send messages) or full-duplex(both can communicate with each other) transceiver.
Android P allows up to five bluetooth connections at the same time. Regularly two connections are allowed, 5 can be activated as developer option.
https://www.androidauthority.com/android-p-bluetooth-audio-developer-options-844298/
I have a bluetooth Speaker which requires me to pair and then I am able to play music on it. Is it possible to play music on it without pairing when it is idle(when it is not paired with any device) or pairing with multiple bluetooth speakers/devices at once. I want to create an Android app for that if its possible. I was unable to find any useful information on this so far.
Thanks!
I don't think this is (or should be) possible. Bluetooth uses end-to-end encryption, which is partly negotiated during the pairing phase. If you ignore the pairing phase, this encryption would not be possible (or be completely insecure) and violate the bluetooth protocol.
I have one android phone (Samsung S Duos) that will act as SOURCE and one Audio Development Kit i.e. CSR 8670 which will Act as SINK. I am trying to activate the a2dp profile and than transferring the incoming call of my phone (Samsung S Duos) to the Kit(CSR 8670) but not able to achieve it. Please assist me to overcome this problem.
A2DP uses ACL packets, voice calls (handsfree) uses SCO packets over the air.
The "Call" audio runs over SCO channel, so it is "technically" not possible to route calls to A2DP sink (unless you do some great hacks, which does not conform to the BT spec). Ideally you should use HFP for audio calls.
HCI can transport both ACL and SCO. BT chips often have PCM interface to which SCO data can be routed but usually its not accessible unless you can access the PINs of the chip.
Also, please try to ask some precise questions (with log/code) so that we can really assist you. If you ask some generic questions, it is difficult to answer.
I made a research on the same topic and found that android devices are a2dp sources and the audio can be streamed only from an a2dp source to an a2dp sink. A2dp sink can be a bluetooth headset or a bluetooth speaker.
But my question is then how the android app named "Bluetooth Music Player" works?
It allows streaming from one mobile to another. So in this case the listening mobile device must act as a sink. How this is possible?
Are they using some other profile instead of a2dp?
Ok, that may be a different profile what they are using. Because the application needs to be installed in the client side also.
But how it becomes possible to stream voice from a bluetooth microphone to an android device?
Please help.
Without knowing details about the mentioned Bluetooth Music Player, it seems to use simple Bluetooth data connection, otherwise you would not need to install a client on playing/sending device.
To stream audio from microphone to another device, you can record it on your sending device and send it to the receiving device. You will need to implement a protocol for that purpose.
OR
You can implement an alternative A2DP sink service. This is, what the sink is: a device with a Bluetooth Protocol Stack with an implementation of A2DP Sink.
Edit:
For the case you detailed by your comments, the sending device should be left as-is, without installing any app. That implicitly means that your solution must make use of out-of-the-box Bluetooth functionality of that Android device.
What you can use here is therefor limited to those profiles that Android typically support, which is HSP, HFP and A2DP. Since you obviously want to stream music, A2DP would be your choice.
On the device supposed to receive the audio stream and do the playback, you have to implement a service providing the A2DP sink as an self implemented BluetoothService opening a BluetoothServerSocket on RFCOMM as described in Android documentation.
You will have to spend much effort implementing this, and I am not sure if you will need a license for this.
I have 2 Android Phones, and I want to connect them together via bluetooth, and make one of them a bluetooth headset.
So, my question is how to program the second phone to change its role profile to "Bluetooth Headset" when establishing the connection ?
I've found this post but my question is a little bit different
Thank for any advice or idea :)
You cannot on Android. At least using the built-in Bluetooth A2DP profile.
Your phone will only act as a transmitter (source), not a receiver (sink).
Please look at these two answers I gave on why this is not possible :
Is it possible to send/receive voice from PC to Android device over Bluetooth
Receive audio via Bluetooth in Android
You can, on the other hand, develop two apps each acting as a client/server using your own protocol. The server could be streaming audio content to the client via Bluetooth for instance.
Another way to consider this, since using an Android device as an A2DP sink is not feasible on every phone, is building these two apps using your wifi connection. It could be much more rapid and the sound sound be of a much better quality.