[Request] Module to intercept Bluetooth redial action (AT+BLDN) - Xposed Framework Modules

Hello there!
After searching and searching the question comes up again: could someone come up with a module that would intercept the command coming from the Bluetooth headset (that usually is redirected directly to the dialer which redials the last number) and change it in to something that could be used by Tasker or similar (and intent would be the most elegant way).
I know that there is an app that does this, but it doesn't do it in the most elegant way (still initiates a fake call).
Thank you!

Related

[Q] Bluetooth voice dialing problem

Hi
I installed " Cyberon Voice Commander " from the Market on my Galaxy S2.
The first time I used my Bluetooth headset to voice dial, the phone asked me to choose which default program I would like to use for Bluetooth voice dialing, the Cyberon voice commander or the Vlingo voice commands, I chose the Cyberon and from then on every time I pressed the Bluetooth headset it would initiate a call using the Cyberon voice commander.
Recently something changed, every time I am pressing the Bluetooth headset it starts the Vlingo voice commands, no matter what I do I can't go back to use the Cyberon voice commander as my default program, I can only use Cyberon if I open the program through my phone.
I tried using voice input and output settings and looking also through the setting of Cyberon and Vlingo, nothing works.
Could someone tell me what am I doing wrong? How do I change the default back to Cyberon.
Many Thanks.
Same problem
I have the same problem, but Galaxy s2 never asked me what application to set as preferred.. simply I can't set Cyberon to start when pressing BT button.
It always start slingo. Maybe because my GS2 was already updated.
Cyberon wrote me it's a samsung not standard managing of BT events.
From what you wrote it seems that at the beginning the implementetion was standard, than an update broke it up.
Have you updated ROM or are samsung apps updates?
It would be nice to repack the old apps to turn back the possibility to choose BT event.
For now I use Tasker to kill Samsung Voice command process and start cyberon. It works fairy well.. but not always perfectly.
Very annoying!!
Any one??
Hi same problem here. I would like to chose the application to start with the bt headset button, but the phone forces to use the vlingo app.
My father has this app on his SGS2 and actually emailed developers about this problem.
The extremely polite and professional support (seriously, I have never read such a concrete and polite reply from a software company, ever!) said, that this is a firmware limitation and they cannot fix it.
I think this started happening after he updated firmware from Polish KF1 to newer one.
They said, that unless Samsung changes this behaviour, they cannot do anything about it, at least they are not aware of the solution for now.
Yes Cyberon folks are very kindly and polite!!
I have found a fix!!
* Root your device
* Set google as default voice recognition instead of vlingo in settings>voice recognition (not sure this is important to do)
* Install Titanium backup (i Have paid full version, but probably you can use free
* Disable "comandi vocali" (Italy) which in english should be like "voice commands"
* Than I have cancelled the BR pairing, restarted the phone and paired BT again...
* Set Cyberon to use long press bt button to start
IT WORKS!!
Hi all.
Yesterday I've updated firmware through KIES to last one for my region. And now I'm facing same problem
Before updating it was possible to select which app will be default for voice dial. Now, even after factory reset, phone doesn't ask me which app to use. And I unable to find "Voice Talk" in the list of All applications to change its defaults.
I don't want to root device and don't want to install firmware through ODIN. Don't ask why Just want my device to be clear.
Any help with this problem will be highly appreciated.
Thank you
Any news about this issue?
Hi all.
Today I've updated firmware through KIES to last one (KG2) for my region (Romania). Now I'm facing same problem as all the others.
Before updating it was possible to select which app will be default for voice dial (Cyberon Voice Speed Dial). Now it is launching the Vlingo by default.
I changed to Google Voice but in vain... It's still launching this useless Vlingo.
Does anybody has found a solution without rooting the phone?
Stefan
stefanjadex said:
Hi all.
Today I've updated firmware through KIES to last one (KG2) for my region (Romania). Now I'm facing same problem as all the others.
Before updating it was possible to select which app will be default for voice dial (Cyberon Voice Speed Dial). Now it is launching the Vlingo by default.
I changed to Google Voice but in vain... It's still launching this useless Vlingo.
Does anybody has found a solution without rooting the phone?
Stefan
Click to expand...
Click to collapse
I applied solution described in post #5. It works fine.
....but you must be rooted
I have a slightly different problem...
I have no issue using Vlingo (if it worked)
Firstly, it's not responding to pressing the button on my bluetooth anymore.
Secondly, when it did, the device had to be unlocked for it to work.
Damn you Vlingo.
The only legal solution is unfortunately this, as far as I know:
1 Backup the phone
2 Take it to authorized repair service
3 They will "degrade" firmware to the last version which was problem free
4 Restore from backup and hope it will work. More chance to succesfully restore is if you made a backup on previous firmware
5 Reinstall all the apps.
Well done Samsung
Bytheway can anyone tell me what was their last firmware that did not have this issue?
Awful solution.
Anyone with the latest 2.3.4 firmware here? Can you confirm this bug?
Ray Adams said:
Awful solution.
Anyone with the latest 2.3.4 firmware here? Can you confirm this bug?
Click to expand...
Click to collapse
I agree but does anyone knows any better without rooting? Everyone must decide the importance of being able to use bluetooth calling from the car. I personaly need it so much I am willing to degrade firmware. I waited with buying gs2 until voice speed dial came up.
Anybody out there good enough to know how to disable or erase voice talk app, integrated in GS2?
Your first question should be how to use the search function in this forum.
Update solved the problem
Hi
Yesterday my Galaxy SII got an update, Android OS got updated from 2.3.4 to version 2.3.6 and Baseband version is now SC02COMKL4.
Now I am able to activate the voice dialing by a long push on the Bluetooth connect button.
Where's voice input key
Overall wonderful rom!! .. but I couldn't find Mic key for activating voice input in my keyboard, evev if in Settings->Keyboard&Languages->"Voice input key" I set both "on main keyboard" or On symbols keyboard".
Anyone can give me a suggestion?
Tnx.
Gabo
lwizard said:
Yes Cyberon folks are very kindly and polite!!
I have found a fix!!
* Root your device
* Set google as default voice recognition instead of vlingo in settings>voice recognition (not sure this is important to do)
* Install Titanium backup (i Have paid full version, but probably you can use free
* Disable "comandi vocali" (Italy) which in english should be like "voice commands"
* Than I have cancelled the BR pairing, restarted the phone and paired BT again...
* Set Cyberon to use long press bt button to start
IT WORKS!!
Click to expand...
Click to collapse
ANOTHER PROBLEM RELATED WITH THE SAME TOPIC
I can start Cyberon Voice Commander (CVC) with BT headset button.
But there is only one problem that I can not solve anymore:
Everytime Note2 is turned off completely or restarted, I have to reassign the BT headset button to Cyberon Voice Comander.
Is there any genious gentleman to help me ?
Thanks.
Tuncay

[Q] Is there any way to disable bluetooth last number redial

Hi,
As the title suggests, is there any way to disable the bluetooth last number redial functionlity.
I have a Xperia Mini Pro (SK17i, Bootloader unlocked, Rooted) with a Samsung HM1700 bluetooth headset. The headset has a button for answering / ending calls and this same button also has the last number redial functionality, ie when not in a call, pressing this button redials the last dialed number.
AFAIK, the headset just sends a signal to the mobile which then calls the last dialed number.
What I need, is to disable only the bluetooth redial functionality on my mobile.
[ BUMP]
Any suggestions anyone?
Sent from my SK17i
BUMP
Sent from my SK17i
You can try the app Smart Bluetooth Headset from the Play Store.You can not only disable it but also make it do something useful
Since the app "Smart Bluetooth Headset" does not work reliably for me (e.g. not activated by default after program start) I use this now: Go to Bluetooth settings and find your headset. Uncheck Phone to disable the headset from being used for voice calls.
Use an app on your smartphone to enable bluetooth on call and disable after call. There are many apps for this, for example bluetooth on call: https://www.addictivetips.com/mobil...ndroid-bluetooth-for-bt-headset-during-calls/
In addition to solving this problem your phone battery will last longer.
Regards Rob.
Necroing this thread to say that I tried "Headset Button Controller" and "Smart Bluetooth Headset" apps, both free versions, on my rooted HTC10 running Oreo 8.0 with a paired MPOW Crescent. Both apps worked, in slightly different ways.
Headset Button Controller places a dummy call on the call log. Activating the redial function on the headset (double click the answer/end call button on the MPOW Crescent) makes the phone call to the dummy thing, and a little window shows asking for a valid number. No call is actually made.
Problem is, if a valid call is made (for example, you call your boss or a friend), the dummy call setting must be reenabled again manually in the app - meaning that, if you make a valid call, the next time you activate the redial function on the headset, it will call the valid call.
Smart Bluetooth Headset works basically the same way, except that, instead, the redial attempts to call the * or *1 numbers. These attempts open the call window but close it right away, and immediately activate whatever you set the redial function to do. I set mine to run "Tasker 01", but didn't set what "Tasker 01" is. So, what my phone does when I (accidentally) activate the redial function on my headset is open and close the call window, and then return an onscreen self-fading error notification stating that Tasker 01 could not be found.
Best of all, the settings stick - meaning that, if you make a valid call, the redial function will still attempt to dial the * or *1 numbers, as long as the Smart Bluetooth Headset service is active.
So, in my experience, the Smart Bluetooth Headset app works the best.
Of course, I could just turn the headset on and off, whenever I need. It has a physical on/off switch, and immediately pairs with the phone (if previously paired) when turned on.
Awesome guys, thanks! Well written instructions Kam0laZ So nice when a solution presents itself effortlessly. Just turned on my new Bluetooth piece and INSTANTLY ( double tapping by mistake Just to get the damn thing in my ear hole) redialed my (dreaded) Ex BF..... TWICE! .... Noooooooo! Damn it! *Fists shaking furiously* And the ball was only in MY court but for a fleeting moment... wah wah
Could you share a link for these two apps? I've been trying to find them on the Google play store..
Unfortunately, redialing is no easy feat (like instead the stupid "media player opens" case).
https://github.com/LineageOS/android_system_bt/blob/lineage-17.1/bta/include/bta_ag_api.h#L319
https://github.com/LineageOS/android_system_bt/blob/lineage-17.1/btif/src/btif_hf.cc#L423
https://github.com/LineageOS/androi...e-17.1/jni/com_android_bluetooth_hfp.cpp#L194
https://github.com/LineageOS/androi...luetooth/hfp/HeadsetNativeInterface.java#L118
https://github.com/LineageOS/androi...ndroid/bluetooth/hfp/HeadsetStateMachine.java
https://github.com/LineageOS/androi...droid/bluetooth/hfp/HeadsetService.java#L1331
So, like, simply put.. You have a bluetooth HFP device that sends an AT+BLDN command to your phone.
The bluetooth stack runs DialCallCallback in the bluetooth package, which getLastDialledNumber from your phonebook, and then sends an ACTION_CALL_PRIVILEGED intent to the rest of the phone with the number to call.
Where could we act?
Perhaps if you could force some sort of HSP-only mode, you could avoid all the extra cruft but I'm not aware of any way to do so.
Similarly, there are plenty of ways to "directly hack the code", but I don't think anybody has got such a solution yet.
So my efforts have focused on disturbing the phone dialer from getting the action to call.
The problem is, "install-only" permissions aren't changeable. And without root you can't even hope to revoke android.permission.READ_CALL_LOG. And without xposed you can't even block intents.
(if you have either of these though, something could be done I guess?)
So long story short, well, Smart Bluetooth Headset still sounds like the best option.
It's no longer available in any official place as already stated.. But luckily enough it was open source!
We'll see.
Hi,
Install macrodroid app from play store.
Create a macro as follows:
Trigger:
Call/sms -> call outgoing
(Select number(s) from the 3 bullet menu that appears, it is the 3rd)
Enter * (meaning all calls)
Action:
Phone -> call reject
Save the macro.
That's it !!!
Keep in mind to let the macrodroid app on the white list of any battery saver app you may have installed or is built in the android it self (eg xiaomi phones) easy to make it unrestricted to not be killed by any task manager.
Simple solution, minimal battery drain, no wake up the phone to check. The macro runs only on call intent
Thats's it.
Thanks
kounelii said:
kounelii said:
Hi,
Install macrodroid app from play store.
Create a macro as follows:
Trigger:
Call/sms -> call outgoing
(Select number(s) from the 3 bullet menu that appears, it is the 3rd)
Enter * (meaning all calls)
Action:
Phone -> call reject
Save the macro.
That's it !!!
Keep in mind to let the macrodroid app on the white list of any battery saver app you may have installed or is built in the android it self (eg xiaomi phones) easy to make it unrestricted to not be killed by any task manager.
Simple solution, minimal battery drain, no wake up the phone to check. The macro runs only on call intent
Thats's it.
Thanks
Click to expand...
Click to collapse
Click to expand...
Click to collapse
@kounelii how do you configure the macro so that it only applies to calls made from headphones when last number redial is executed?
kounelii said:
Hi,
Install macrodroid app from play store.
Create a macro as follows:
Trigger:
Call/sms -> call outgoing
(Select number(s) from the 3 bullet menu that appears, it is the 3rd)
Enter * (meaning all calls)
Action:
Phone -> call reject
Save the macro.
That's it !!!
Keep in mind to let the macrodroid app on the white list of any battery saver app you may have installed or is built in the android it self (eg xiaomi phones) easy to make it unrestricted to not be killed by any task manager.
Simple solution, minimal battery drain, no wake up the phone to check. The macro runs only on call intent
Thats's it.
Thanks
Click to expand...
Click to collapse

[Q] New Google Search and BT Dialing Problem

Prior to the latest update to Google Search 3.5.16.1262550 a couple weeks ago, I used to be able to do a long press on my BT headset to bring up Google Now, which let me say, "Call Joe Blow home" and it would make the call to his home number. Now it brings up Google Dial which tells me to say "Call someone" but pops up with a numbered list of the cell, home, and work numbers on the screen that I either have to touch to choose the one I want, or say, "Select Two" to dial his home number. This requires that I either touch or look at the screen to make a call, which totally defeats the purpose of "hands-free" calling.
I have switched back to S-Voice for now, which I hate because she talks too much before I can actually make a call, but at least I don't have to dig my phone out to push or see which phone I want to call. I hope someone can help us get back to BT dialing the way it used to be.
This is on a Sprint Galaxy Note 3 running KitKat, but I imagine this is affecting all phones.
Yes I have a note 3 kitkat and Google search issue is affecting my phone as well. Instead of Google now voice prompt when pressing headset hard button on my LG bluetooth headset....Goople dial is not default which sucks!
Bump! Surely someone must use Bluetooth dialing from a headset and noticed this major change besides the two of us. Please help if you have any ideas to revert Google Search to work the way it used to.
Bump again! Doesn't anyone else use their Bluetooth headset to initiate calls?
I think I have finally found an acceptable workaround using Bluetooth Launch from the Play Store. Install the app and follow the directions as described in this thread: http://forum.xda-developers.com/showthread.php?t=2794883
Step one shouldn't be needed as when you long press, it will detect the new app and let you select Bluetooth Launch as the default.

[MOD][Xposed][4.0.3+] Diverted call detector

I've developed an Xposed module to detect when diverted (forwarded) calls are incoming. This is the support thread for this module.
The module is available here: http://repo.xposed.info/module/ch.masshardt.divertedcall
Please report any problems in this thread.
Thanks for using your time to developed this.bi am so sorry but I have no idea what this mod does. Can you please explain a little better as I don't know what diverted means.
Thanks!
A diverted call is an incoming call that was forwarded from another phone. The problem is that the number that is displayed on the phone is the calling number and not the number of the phone the call was forwarded from. So the number could be from the local country but was forwarded from a phone in a different country and there is no way to see that. With this mod it is at least possible to display a message with Tasker when such a call is incoming.
There are also other threads about this problem:
https://code.google.com/p/android/issues/detail?id=11026
https://code.google.com/p/android/issues/detail?id=2544
Deleted
Any chance you could give some further detail on how to set up within Tasker?
I've uploaded an example Tasker profile on pastebin: http://pastebin.com/G4FDZe4M
Just download the example and save it as an xml file on your phone. In Tasker the profile xml can be imported by short pressing the "PROFILE" tab in Tasker and selecting "Import".
Interesting module, but I'm not really sure what problem this app is trying to solve...
When I receive a call that was diverted I'm being shown the original callers number with a text "forwarded call" below it - but that may be due to my use of CM?
However the 2 problems I do have with diverted calls can't be addressed with this mod afaict:
- In call log there's no indication whether a call was forwarded
- Different ringtone can't be set as the standard ringtone is played by Phone app and I could use tasker only to play an additional one but not replace it.
It's actually really cool if it works as I think it does. I've been getting a lot of random calls recently, all telemarketer. (Yay me)
Over half of them have my hometown's area code, but I know they are not actually that number from research. My phone at least does not say anything about it being a forwarded call. It would be nice to have an idea if they are actually a telemarketer calling or a friend that I had lost his number.
It depends on the rom that is running on the device. Google did not implement this notification in their source code, but some roms added this feature. E.g. on my Sony device I only receive a toast message for about 2 seconds that the call was diverted. Most of the time it takes more than two seconds until I notice that the phone is running so this notification doesn't help much. Also with the intent it is possible to do other things. For instance the phone could be muted or unmuted when such a call is incoming. I for an example use the plugin to unmute the phone when a diverted call is incoming if I am in charge of my office's 24/7 hotline. For this it would be really cool if also the redirecting number could be reported, but I don't think that this information is available in the 3g protocol.
Thenetstriker said:
There are also other threads about this problem:
https://code.google.com/p/android/issues/detail?id=2544
Click to expand...
Click to collapse
As the person who created that issue in 2009, thanks for this module
Haven't quite got it to work yet in tasker yet though!
great idea .... thanks for update ....
Any updates on this whether it works before i purchase Tasker from Google Play
Thanks.
You can also use this with other apps than Tasker. Everything that supports Android Intent's should work.
@Thenetstriker
Hi, I'm trying to use this module.
I tried with tasker and e-robot but is working only one time (only for the first event).
If i reboot the phone is working again for the firs event but not the others following.
Any idea?
Tks.
problem
Thanks for your effort!
I meet the same problem with @mbgheban, "It is working the first time. If i reboot the phone, it work again for the first event but not the others following. Tasker cannot receive any more intent".
I am using android 6.0.
---------- Post added at 02:57 PM ---------- Previous post was at 02:47 PM ----------
Moreover, only ver1.1 can work at the first event. Version 1.0 didn't work even the first time.
What's the difference between these versions?
unrooted?
did anyone find a way to get a notification without rooting the phone?
I am using a S8 which is showing a forwarded call notification but of cause too short...

Tasker Capability to Answer a Call

Tasker script I used to have to auto-answer a call when bluetooth active. Seems this action is not directly available on this device. How to get it? Root?

Categories

Resources