[Xposed Framework Modules] B2OJustin:
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

[IMG="Screenshot"]http://i.imgur.com/UMwdpCH.jpg[/IMG]

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

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