I want to develop a feature for an android app so that when there is a call we can play an audio file on a call. This audio file should be played when the mic is muted. In other words, the other side of the call will just hear the audio file nothing else.I want to run this app on an Samsung A52 rooted device.
Many people said that for this feature I need to create a custom android firmware. In other words I need kernel development. I was sure about it until my client said that hey have a 3rd party lib which is implemented this feature without kernel development. I was disappointed until I saw this post related to achieve this feature through running some commands on a rooted android. The post was talking about injecting uplink audio in a call.
The devices I wanted to run the app on them have Qualcomm-based chipsets. Does anyone have an experience related to this topic?
According to the linked post I guess it's possible through running some commands on a shell of a rooted device but I don't know which commands I should use.
Related
Basically I want to make the tizen smartwatch into a bluetooth headset for a period of time. We have a tizen and an android developer handy and we're willing to build anything necessary to make this work.
This kind of process seems to work with built-in android applications like the standard phone app. But there doesn't seem to be any documentation online as to how an app developer would leverage streaming the mic.
It should be noted that we do need to get the audio into the microphone input on the phone for our third party software to work. It's not as simple as just getting the audio to the phone.
Any help, even someone telling us what isn't possible, will be greatly appreciated.
It is possible to play sound with the HTML audio tag: http://developer.samsung.com/forum/board/thread/view.do?boardName=SDK&messageId=269002&startId=zzzzz~&searchSubId=0000000032&searchType=ALL&searchText=sound
It is possible to capture the sound in a Host Android application
It is possible to exchange data bytes by bluetooth with the accessory SDK: http://developer.samsung.com/samsung-mobile#accessory
The data transfer is quick and efficient, so low quality sound may works with little delay
So it certainly is possible. But you'll have to code (or use compatible javascript and android libraries) all the streaming code which is quite a lot of work
I am developing an app that converts speech to text, however, it appears that the
Emulator doesn't have a microphone feature from what I researched on the forums.
I have android phone, and can run it on the phone phone.
But is there any way to get speech from the telephone, and run application on emulator, because I want to develop my app on higher api than my phone.
This is not a perfect answer, but there is a great community out there for flashing ROMs on to your phone, and putting a newer version of android onto it. One of the most common ones is CyanogenMod, and I would suggest seeing if there is a ROM available for your specific phone model.
This may be a little involved but you could try writing a socket server that would run on the emulator while creating a socket client that runs on the physical phone. The phone would capture the audio and send it via socket stream to the server which would make it available to your app via an interface. The hidden benefit here would be that your app would bind to an interface rather than a concrete class which would make altering the source of the incoming audio more flexible. The socket server may sound like a lot but it's not too difficult, I've written such a socket server for desktop to device communication and it feels difficult until you realize how to properly read/close your streams.
I am looking for a way of displaying an analog video stream on an android phone. On a pc/mac/etc you can achieve this using a cheap usb analog-digital converter such as a grabby: http://www.terratec.net/en/products/Grabby_82248.html, and then view on VLC, for example.
Would such a thing work (in theory) on android if the proper drivers were available? (ie. are there any hardware issues which make this impossible?)
Does anyone know if such a device with android drivers is available?
Ultimately I want to make an app which interfaces with the grabby (or similar device) and allows the user to view video on the android and capture and send short clips.
First of all the Android device needs to support USB Host. This limits your userbase significantly.
Then there is the problem with power. Some USB Host devices will be incompatible simply because an Android phone will not be able to push enough power through to port to get it running properly.
I'm not sure about the drivers, but I'm 99% sure it won't work "out of the box".
You should certainly take a look at THIS project. It is pretty similar to what you are trying to do. Maybe you should consider getting in touch with that person.
EDIT:
Based on what it took to get that DVB-T dongle running in the project i mentioned above the chances of creating an app that everyone will be able to simply download and use are EXTREMELY slim. Getting that dongle running required using a modified kernel and special scripts. Of course I could be wrong. You can continue the research yourself or wait for someone with more experience than me to reply.
Can we access the Microphone driver of my android phone using Android NDK if so then how can I?
Can I set the driver disabled for some time?
Can I detect application name of my phone which is using my phone microphone?
As per Android Multimedia framework the MediaServer is responsible for opening the device and the Java based audio applications connect it as a client. The data transfer happens on the Binder. May because of this there is only one process seen which opens the audio device. Now I want to know how to get information from MediaServer? Anyone knows this or any other idea to find which application is using my phone microphone,i can't use the root permission.
No, you cannot. :-)
(even using NDK)
Specific hacks might exist for certain devices.
But they would definitely interfere with the proper operation of Android framework.
I've been working on a project that would greatly benefit from call-stream modification. This has been repeatedly said/assumed to be unachievable, as most people believe that the hardware loop for the in-call audio is completely disconnected from the main MCU of the device.
Questions like Stream audio to a phone call Android have received answers stating that it is impossible to access the audio. I agree that this is definitely impossible from the Android API, but it is completely unclear whether the hardware ACTUALLY is disconnected completely.
The stackoverflow user 'artsylar' said that they were able to modify the 'framework layer' of Android OS to inject recorded audio into call streams, which would be a huge step forward (see Play an audio clip onto an ongoing call, artsylar's comment on the selected answer). Assuming artsylar's success is valid, there definitely is a way to control the call stream audio by modifying the framework (I assume the telephony base framework in the Android source).
Basically, I completely agree that modifying or controlling the call-stream is impossible from the application layer. However, I am interested in customizing the Android OS in framework or Radio Interface Layer; artsylar seems to have had success, but there is no explanation in open-literature on how. Given the current state of Android technology, could anyone clarify the above to actually establish whether controlling call audio is possible by modifying the core Android OS, and a good path to accomplish this goal?
I believe that a final clarification on this issue would be of great value to the open-source community.
Thanks!
It's technically possible to inject audio into the voice call uplink on some platforms (Qualcomm's MSM8960 and APQ8064, for example). Support exists at the hardware level and at the device driver level. But to make that functionality available to normal applications you'd have to create a custom Android ROM where you've added all the necessary user-space parts in both the Java layers and native layers of Android.
So the short answer is: no, there's no standard way of doing this as an app developer (doesn't matter if you use the SDK or NDK).
If you're working for an OEM or by some other means are able to build and flash your own Android ROMs you can probably get the information you need by asking your platform vendor.
It is very difficult to do so because it relates to handling the Linux Kernal inside the Android OS.
Not only is there no API support , but also the security issue is not allowed to do so.
As being a professional in the software engineering field especially the programmers, we
never assume anyone's success on invention and the related project is valid until the project is being tested.
Also streaming the audio during the call may invoke the issue of privacy and security issue among the smartphone users and the service provider of telephony