I figured it out. I set Tasker to run "alsa_amixer -c1 set PCM 100%" (using Root) when a USB Audio Device is attached. It is fairly reliable and seems to also let me use Viper4Android. Super nice because now I can play all my audio including Tidal and Spotify through my DFR. By the way, I'm running Exodus Marshmellow 6.0.1 on a OnePlus One with Franco Kernal.
Just a rundown for anyone else who might want to do this (note: all credit for how to do this goes to west0ne, I just wanted to put in all in one place for rooted Android users):
**DO THIS AT YOUR OWN RISK**
1. Changing the Dragonfly volume setting through Android:
First get Alsamixer, then you will need a terminal shell like Terminal Emulator or a script runner like $cripter or Tasker.
Then in a terminal type:-
su
alsa_aplay -l
This will list the audio devices available on your phone, if you connected the Dragonfly after booting the phone you will probably find that it is 'Card 1'. You will need this for next bit.
In a terminal type:-
su
alsa_amixer -c1 set PCM 100%
The '-c1' flag points to the Dragonfly and assumes it is 'Card 1' change the '-c1' flag to a different number depending on the number of your card.
You can also change the PCM setting, you could use a percentage or a number on the DFB the volume settings are from 0-64 so you could use PCM 32 for example which would be the same at 50%.
The volume buttons on the phone still work to change the volume but they don't affect the internal hardware of the Dragonfly so they act like software volume controls.
The volume will reset each time you reboot your phone or remove the Dragonfly, so you can use Tasker to automate the volume change each time you attach the Dragonfly.
2. Change sample rate on your Android by editing 'audio_policy.conf'
Using a file explorer navigate to root then /etc (or /system/etc). Open 'audio_policy.conf". Scroll down and find the area that says "USB_DEVICE". Change the sample rate to 44100, and get rid of anything else. Mine said "dynamic", it might also say something like "44100 | 48000". Change it so it says just 44100.
After editing mine looked like this:
Code:
[color=rgb(69, 69, 69)] usb { outputs { usb_accessory { sampling_rates 44100 channel_masks AUDIO_CHANNEL_OUT_STEREO formats AUDIO_FORMAT_PCM_16_BIT devices AUDIO_DEVICE_OUT_USB_ACCESSORY } usb_device { sampling_rates 44100 channel_masks AUDIO_CHANNEL_OUT_STEREO formats AUDIO_FORMAT_PCM_16_BIT devices AUDIO_DEVICE_OUT_USB_DEVICE } } }[/color]
Then save. Reboot your phone and try playing audio through a non-UAPP player (note: Do not let UAPP launch when the DAC is attached. If you already set this preference, removed it in the app's settings). You should get the green LED through your Dragonfly if it worked. If not, make sure it saved correctly.
Thanks again for the help west0ne! I hope this can help someone else... I'm still hopeful the firmware update will solve these problems, but in the meantime I'm happy this works.