How to set Ringtone from raw folder resource
===

I see multiple threads about doing this but they all differ in their approaches. Can someone tell me the definitive way to take a raw resource (i.e. "song.mp3") and set it as the ringtone on a phone? I know it goes something like: 
1. Push the song to external storage.
2. Set ringtone using the absolute path of where the song saved in external storage.

But if someone has some java that shows how this plays out, that would be great.