[Xposed][ICS+] XVoicePlus - Voice+ with Xposed

Search This thread

B2OJustin

Member
Aug 28, 2014
31
31
Tampa, Florida
This module was previously developed by runnirr.

A majority of the information in the original post has been moved here:
Wiki on github

Alpha and beta testers needed!
If you're willing to communicate with me directly to test new features and/or ensure compatibility with your particular device and ROM feel free to PM me. I'd prefer to communicate via messaging on either hangouts or skype. I'm especially looking for people using Sense or Touchwiz based ROMs, but anyone can be helpful. If you can take a logcat and willing to test a barrage of experimental builds, I WANT YOU!

My own testing will take place on:
Nexus 7 2013 (FLO)
Dirty Unicorns DU_flo_4.4.4_20140826.v7.9-TESTBUILD
3.4.0-ElementalX-N7-2.14
XPosed + Nexus 7 SMS Enabler


==========​
So this is my first post releasing anything so hopefully this goes well.
Introduction
I exclusively use Google Voice for texting but find the features of other sms apps to be much better than the Google Voice apps. It seems other do as well since it is built into Cyanogenmod now. I decided to go back to stock and missed the option of using other sms apps with Google Voice. This is based largely off the Voice+ module from Cyanogenmod, but implements its own hooks to know when an sms message is being sent, or Google Voice message is being received.

Installation
  • Install Google Voice from the play store if you don't have it already
  • Install the XVoice+ apk from the downloads section at the end of this post
  • Enable XVoice+ in Xposed
  • Run the XVoice+ app and select your Google Voice account
  • Disable "Text Notifications" in the Google Voice app settings to avoid double notifications
  • Reboot your phone to enable the Xposed module
Note: It my take a few minutes after rebooting before your messages start showing in your sms app of choice. A toast will show when the service is up and running.

On a tablet
I don't have a modern tablet but @Link_of_Hyrule put together a small guide about how he got it working.
https://plus.google.com/102556815242935253163/posts/YyFVaTQrPmi
http://xdaforums.com/showpost.php?p=52328473&postcount=606

Screenshot
UMwdpCH.jpg


How it works
Sending
The VoicePlusService runs on startup and listens for a NEW_OUTGOING_SMS so that it knows when a message is being sent. Cyanogenmod made this a system-wide intent, but it is not available on all other roms. Instead, I made my own intent.
I hook all outgoing sms messages through the SmsManager and stops them from being sent. Instead I send my custom NEW_OUTGING_SMS intent that is picked up by the OutgoingSmsReceiver which then starts the VoicePlusService. The handling of sending the message via Google Voice is the same logic used in the Cyanogenmod app.

Receiving
Receiving message is done by hooking into the Google Voice app's PushNotificationReceiver. This means that we know of the message as soon as the Google Voice app does. Conveniently, this notification happens even when notifications in Google Voice are turned off, so you don't need to briefly see the Google Voice notification, have it disappear, and then see the sms notification.
Once we see we have an incoming Google Voice message, we broadcast another custom intent that is picked up by a IncomingVoiceReceiver which starts the VoicePlusService.The service then handles the message and broadcasts a system wide RECEIVED_SMS intent that is used by all sms applications.

Side Effects
Because of the way some system apps are being overwrote, I expect that some things will break.
  • All outoging SMS messages from apps that use the SmsManager will be intercepted and sent via Google Voice. To send via your carrier, select "Disable" within XVoice+
  • The app grants itself permission for BROADCAST_SMS which does not appear in the list of permission since it is a system level permission.
  • The app grants itself WRITE_SMS permisson on 4.4+ so that it can save messages in the sms history

Downloads
Please try one of the latest Experimental Builds if you would like to test new features or help smash bugs!

2.5RC1 - XVoicePlus-v2.5-RC1.apk
Changelog -
  • Support for Sense and Touchwiz based ROMs
  • Added sync settings (Reduces data usage)
  • Slightly reduced memory usage
  • Fixes potential memory leak when sync settings are disabled
Known Issues -
  • Receiving emoji causes apps to crash
  • Receiving long messages causes apps to crash
  • Occasional outgoing message duplication, especially during polling and reboots.

2.4.2 - XVoicePlus2.4.2.apk

Source
Repository on Github

Enjoy and please leave any feedback.

XDA:DevDB Information
[Xposed][ICS+] XVoicePlus - Voice+ with Xposed, Xposed for all devices (see above for details)

Contributors
B2OJustin, runnirr
Xposed Package Name:

Version Information
Status: Snapshot
Current Stable Version: 2.4.2
Stable Release Date: 2014-04-30
Current Beta Version: 2.5RC1
Beta Release Date: 2014-09-03

Created 2014-08-31
Last Updated 2014-09-03
 

Attachments

  • UMwdpCH.jpg
    UMwdpCH.jpg
    19.7 KB · Views: 2,455
Last edited:

aalupatti

Senior Member
Feb 20, 2011
2,871
700
Was always looking for something like this. Will try it out. Thanks

Sent from my GT-N8013 using Tapatalk
 

SeanA208

Member
Jan 8, 2014
5
3
Awesome! I've been looking forward to something like this and I'm installing it right now. I'm running an N5 on 4.4.2. I'll post feedback as I have it.

I had a few questions:

1) Should we keep the Google Voice app installed and running?
2) If so, is the best way to not get dual notifications by disabling notifications via app info for Google Voice or disabling text notifications within the Google Voice app (so as to still get voicemail notifications)? Or maybe something else?


My initial testing looks like this works perfectly (tested with Hangouts and Textra)!
 
Last edited:

runnirr

Senior Member
Mar 17, 2011
288
200
Seattle
Awesome! I've been looking forward to something like this and I'm installing it right now. I'm running an N5 on 4.4.2. I'll post feedback as I have it.

I had a few questions:

1) Should we keep the Google Voice app installed and running?
2) If so, is the best way to not get dual notifications by disabling notifications via app info for Google Voice or disabling text notifications within the Google Voice app (so as to still get voicemail notifications)? Or maybe something else?


My initial testing looks like this works perfectly (tested with Hangouts and Textra)!

1) Yes the google voice app needs to stay installed. I hook into its notifcation system to know when new messages come in.
2) Disabling "Text notifications" in the Google Voice works and is simple. I don't know if there is another way that works. I assume voice mail messages will still come in correctly (I haven't had one since I've been running this)
 

chirisu

New member
Sep 30, 2010
2
0
Galaxy note 2 on sprint (sph-l900). My Google voice number is my sprint number.

My problem has always been that messages I send through the web never appear in the stock messaging app. With your module, it's a little better... I can get those messages that I send from the Web on my phone if and only if the recipient replies to the message before I send a message from my phone. For instance, if I send a message via the Web and immediately send another message via the hangouts app, the web message never gets synched to the hangouts app.

Otherwise, this is a fantastic module, something I can use daily. Thanks!
 

ahrion

Retired Forum Moderator / Recognized Developer
Jul 19, 2013
3,101
5,128
I use sliding messaging as it has Google Voice integration but there has always been problems with the way it receives gv sms. Is there any way to help the integration with that....maybe work with the team?

I use my regular text for personal business and the gv text for work. It's all integrated in the same app, Sliding Messaging... But receiving has never really worked properly...

Sent from my LG-E980 using Tapatalk
 
  • Like
Reactions: AsinineRepublic

runnirr

Senior Member
Mar 17, 2011
288
200
Seattle
Galaxy note 2 on sprint (sph-l900). My Google voice number is my sprint number.

My problem has always been that messages I send through the web never appear in the stock messaging app. With your module, it's a little better... I can get those messages that I send from the Web on my phone if and only if the recipient replies to the message before I send a message from my phone. For instance, if I send a message via the Web and immediately send another message via the hangouts app, the web message never gets synched to the hangouts app.

Otherwise, this is a fantastic module, something I can use daily. Thanks!

I was able to reproduce that scenario (without Sprint integration). I'll look into it. This is likely a problem with CyanogenMod's version as well.

I use sliding messaging as it has Google Voice integration but there has always been problems with the way it receives gv sms. Is there any way to help the integration with that....maybe work with the team?

I use my regular text for personal business and the gv text for work. It's all integrated in the same app, Sliding Messaging... But receiving has never really worked properly...

Sent from my LG-E980 using Tapatalk

It is possible but it would be out of scope for this module. Also, it looks like Sliding Messaging is a paid app so I won't be looking into it. If another developer is interested in solving this use case, I can provide more information on how this one works.
 
  • Like
Reactions: christ92

SeanA208

Member
Jan 8, 2014
5
3
Just as a followup, everything seemed to work fine for a couple hours but I'm currently seeing some issues. Messages aren't sending reliably (some go through, some do not) and texts aren't coming through reliably (i.e. they come in on Google Voice but not in the SMS app). I'm going to reboot and see if the problem persists. The issues could be due to external factors too (and I've been experimenting with switching the default texting app but I can't imagine that's related)

As a side note, is any of the code open source or are you looking for help from other developers? I don't have any experience building Xposed modules but I do have Android experience and have done software development for a long time.
 
  • Like
Reactions: AsinineRepublic

runnirr

Senior Member
Mar 17, 2011
288
200
Seattle
Just as a followup, everything seemed to work fine for a couple hours but I'm currently seeing some issues. Messages aren't sending reliably (some go through, some do not) and texts aren't coming through reliably (i.e. they come in on Google Voice but not in the SMS app). I'm going to reboot and see if the problem persists. The issues could be due to external factors too (and I've been experimenting with switching the default texting app but I can't imagine that's related)

As a side note, is any of the code open source or are you looking for help from other developers? I don't have any experience building Xposed modules but I do have Android experience and have done software development for a long time.

Messages are sent using data/wifi (perhaps that is the problem with sending). 4.4.x made many changes in how sms messaging works. I tested briefly on 4.4.2 with hangouts (just to make sure there wasn't any huge issues). I'll try it out some more and see if I can find anything that would be causing it. Day-to-day i use 4.2.2 though.

As far as the source, its currently not uploaded anywhere, although I can share it if you are interested (in a day or so). This was my first Xposed module and it was pretty straight forward, just some reflection. Rovo89's guide is good. https://github.com/rovo89/XposedBridge/wiki/Development-tutorial
 

famewolf

Senior Member
Jul 14, 2006
5,368
1,371
OnePlus 7 Pro
OnePlus Nord N200 5G
Messages are sent using data/wifi (perhaps that is the problem with sending). 4.4.x made many changes in how sms messaging works. I tested briefly on 4.4.2 with hangouts (just to make sure there wasn't any huge issues). I'll try it out some more and see if I can find anything that would be causing it. Day-to-day i use 4.2.2 though.

As far as the source, its currently not uploaded anywhere, although I can share it if you are interested (in a day or so). This was my first Xposed module and it was pretty straight forward, just some reflection. Rovo89's guide is good. https://github.com/rovo89/XposedBridge/wiki/Development-tutorial

I'm on 4.4.2 and no modules with "voice" is showing up in the xposed installer modules list...I've hit refresh in the installer so how do I get your module?
 

runnirr

Senior Member
Mar 17, 2011
288
200
Seattle
I'm on 4.4.2 and no modules with "voice" is showing up in the xposed installer modules list...I've hit refresh in the installer so how do I get your module?

There is a link at the bottom of the first post for the apk. Download and sideload it. Its not in the xposed repo/installer yet.

Sent from my Galaxy Nexus using Tapatalk
 

famewolf

Senior Member
Jul 14, 2006
5,368
1,371
OnePlus 7 Pro
OnePlus Nord N200 5G
There is a link at the bottom of the first post for the apk. Download and sideload it. Its not in the xposed repo/installer yet.

Sent from my Galaxy Nexus using Tapatalk


ahh my apologies...I misread and was thinking both voice+apk and xvoice+ module were required for some reason. Thanks for clarifying for me. Thats what I get for posting at 4am. ;)
 
Last edited:

SeanA208

Member
Jan 8, 2014
5
3
Messages are sent using data/wifi (perhaps that is the problem with sending). 4.4.x made many changes in how sms messaging works. I tested briefly on 4.4.2 with hangouts (just to make sure there wasn't any huge issues). I'll try it out some more and see if I can find anything that would be causing it. Day-to-day i use 4.2.2 though.

As far as the source, its currently not uploaded anywhere, although I can share it if you are interested (in a day or so). This was my first Xposed module and it was pretty straight forward, just some reflection. Rovo89's guide is good.

Yeah I'm still seeing issues on 4.4.2 (functionality goes in and out) so if you could share the source that would be great. I can hack at it and post my findings/fixes if I have any.

Upon further review, it looks like sending is working (after reenabling and rebooting) but receiving is not. I'm not sure if it's an issue with the hook in Google Voice's notifications or in broadcasting the RECEVED_SMS (or something else?)
 
Last edited:

runnirr

Senior Member
Mar 17, 2011
288
200
Seattle
Yeah I'm still seeing issues on 4.4.2 (functionality goes in and out) so if you could share the source that would be great. I can hack at it and post my findings/fixes if I have any.

Upon further review, it looks like sending is working (after reenabling and rebooting) but receiving is not. I'm not sure if it's an issue with the hook in Google Voice's notifications or in broadcasting the RECEVED_SMS (or something else?)

I finally got the source out and on Github. https://github.com/runnirr/XVoicePlus/

I cleaned up some stuff, and forked it from CyanogenMods (instead of just copying their files). The code on Github isn't the exact same that is posted in the OP (as of now) but everything seems to be working.

If you need help setting anything up let me know. Otherwise, feel free to mess around with the code.

Thanks for showing so much interest in this. Its good to know people are using it.
 

GoatsTech

Member
Dec 1, 2013
23
6
plus.google.com
Can't wait to look into this. I will be downloading Xposed tomorrow and let you know how it works. I've been wanting to text through Hangouts instead of voice forever now. Thanks!

Sent from my Nexus 5 using Tapatalk
 

runnirr

Senior Member
Mar 17, 2011
288
200
Seattle
Can't wait to look into this. I will be downloading Xposed tomorrow and let you know how it works. I've been wanting to text through Hangouts instead of voice forever now. Thanks!

Sent from my Nexus 5 using Tapatalk

No problem. Let us know how it goes.

Also, I have uploaded the module to the Xposed repo http://repo.xposed.info/module/com.runnirr.xvoiceplus
It is different than what has been in the OP, but should be functioning the same as before. I'll put any new versions there.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 60
    This module was previously developed by runnirr.

    A majority of the information in the original post has been moved here:
    Wiki on github

    Alpha and beta testers needed!
    If you're willing to communicate with me directly to test new features and/or ensure compatibility with your particular device and ROM feel free to PM me. I'd prefer to communicate via messaging on either hangouts or skype. I'm especially looking for people using Sense or Touchwiz based ROMs, but anyone can be helpful. If you can take a logcat and willing to test a barrage of experimental builds, I WANT YOU!

    My own testing will take place on:
    Nexus 7 2013 (FLO)
    Dirty Unicorns DU_flo_4.4.4_20140826.v7.9-TESTBUILD
    3.4.0-ElementalX-N7-2.14
    XPosed + Nexus 7 SMS Enabler


    ==========​
    So this is my first post releasing anything so hopefully this goes well.
    Introduction
    I exclusively use Google Voice for texting but find the features of other sms apps to be much better than the Google Voice apps. It seems other do as well since it is built into Cyanogenmod now. I decided to go back to stock and missed the option of using other sms apps with Google Voice. This is based largely off the Voice+ module from Cyanogenmod, but implements its own hooks to know when an sms message is being sent, or Google Voice message is being received.

    Installation
    • Install Google Voice from the play store if you don't have it already
    • Install the XVoice+ apk from the downloads section at the end of this post
    • Enable XVoice+ in Xposed
    • Run the XVoice+ app and select your Google Voice account
    • Disable "Text Notifications" in the Google Voice app settings to avoid double notifications
    • Reboot your phone to enable the Xposed module
    Note: It my take a few minutes after rebooting before your messages start showing in your sms app of choice. A toast will show when the service is up and running.

    On a tablet
    I don't have a modern tablet but @Link_of_Hyrule put together a small guide about how he got it working.
    https://plus.google.com/102556815242935253163/posts/YyFVaTQrPmi
    http://xdaforums.com/showpost.php?p=52328473&postcount=606

    Screenshot
    UMwdpCH.jpg


    How it works
    Sending
    The VoicePlusService runs on startup and listens for a NEW_OUTGOING_SMS so that it knows when a message is being sent. Cyanogenmod made this a system-wide intent, but it is not available on all other roms. Instead, I made my own intent.
    I hook all outgoing sms messages through the SmsManager and stops them from being sent. Instead I send my custom NEW_OUTGING_SMS intent that is picked up by the OutgoingSmsReceiver which then starts the VoicePlusService. The handling of sending the message via Google Voice is the same logic used in the Cyanogenmod app.

    Receiving
    Receiving message is done by hooking into the Google Voice app's PushNotificationReceiver. This means that we know of the message as soon as the Google Voice app does. Conveniently, this notification happens even when notifications in Google Voice are turned off, so you don't need to briefly see the Google Voice notification, have it disappear, and then see the sms notification.
    Once we see we have an incoming Google Voice message, we broadcast another custom intent that is picked up by a IncomingVoiceReceiver which starts the VoicePlusService.The service then handles the message and broadcasts a system wide RECEIVED_SMS intent that is used by all sms applications.

    Side Effects
    Because of the way some system apps are being overwrote, I expect that some things will break.
    • All outoging SMS messages from apps that use the SmsManager will be intercepted and sent via Google Voice. To send via your carrier, select "Disable" within XVoice+
    • The app grants itself permission for BROADCAST_SMS which does not appear in the list of permission since it is a system level permission.
    • The app grants itself WRITE_SMS permisson on 4.4+ so that it can save messages in the sms history

    Downloads
    Please try one of the latest Experimental Builds if you would like to test new features or help smash bugs!

    2.5RC1 - XVoicePlus-v2.5-RC1.apk
    Changelog -
    • Support for Sense and Touchwiz based ROMs
    • Added sync settings (Reduces data usage)
    • Slightly reduced memory usage
    • Fixes potential memory leak when sync settings are disabled
    Known Issues -
    • Receiving emoji causes apps to crash
    • Receiving long messages causes apps to crash
    • Occasional outgoing message duplication, especially during polling and reboots.

    2.4.2 - XVoicePlus2.4.2.apk

    Source
    Repository on Github

    Enjoy and please leave any feedback.

    XDA:DevDB Information
    [Xposed][ICS+] XVoicePlus - Voice+ with Xposed, Xposed for all devices (see above for details)

    Contributors
    B2OJustin, runnirr
    Xposed Package Name:

    Version Information
    Status: Snapshot
    Current Stable Version: 2.4.2
    Stable Release Date: 2014-04-30
    Current Beta Version: 2.5RC1
    Beta Release Date: 2014-09-03

    Created 2014-08-31
    Last Updated 2014-09-03
    10
    Transferring Ownership

    Just so everyone knows, I am transferring ownership of this project to B2OJustin. I have not used this module in many months, and Justin is adding features that people have been asking for and I have been neglecting. I'll leave it up to him to handle additional feature requests, and when to release new versions of the app. I'll still check into this thread now-and-then to see how things are going.

    This was a fun project while I used it, but I have moved on. I am glad to see that so many people still find this useful and I hope the Justin (and others) are able to continue to improve on this module.
    9
    https://app.box.com/s/9vhheh17i8wb69w45uem 2.1.2_hangouts

    Hangouts receives notifications for incoming GV messages. Any incoming CDMA messages will make hangouts force close. This could possibly cause problems with anything else the differs between CDMA and GSM (phone calls, etc). I didn't test this much (just that a GV message came in to hangouts on 4.4.2). Other apps should still work but I didn't try any.


    For anyone interested in what got screwed up:

    Normal android sdk uses android.telephony.SmsMessage to handle sms messages. This is what XVoice+ previously hooked to handle the fake sms messages. Hangouts decided to use the deprecated android.telephony.gsm.SmsMessage. These are somehow unrelated, and they determine what type of message (cdma or gsm) is expected using different methods. I'll continue to look at this some more.
    5
    For any people who are trying to use the new Hangouts with this -

    Hangouts doesn't like my fake sms messages anymore. I have created a build that just puts incoming GV messages into your SMS db. This allows GV messages to show up in Hangouts (or any sms app) but the app won't give a notification about the incoming message. I suggest turning on the Google Voice App notifications for the messages. Sending from the SMS app still sends via GV.

    https://app.box.com/s/oukh38ct4gl8wu5yo2ug 2.1.1_hangouts

    I'll continue trying to get this to work correctly, but it looks like Hangouts doesn't used standard methods for receiving SMS messages.
    5
    Xposed repo has been updated.