Hi Kevin, One likely cause of this error code is that you are using a security profile that is not associated with an Alexa Voice Service product. Please view the product you have registered at
https://developer.amazon.com/edw/home.html#/avs/list and click edit and then security profile and verify that you are using the security profile listed there in your android application. One more point: it looks like you are performing all of this code on an android device using the LWA android SDK (please correct me if this is not the case). I.e. your user will authenticate on your android application AND make requests to AVS on your android device. If that is the case there is a more direct way to fetch down the token. Please take a look at the following related posted:
http://forums.developer.amazon.com/forums/thread.jspa?threadID=9532&tstart=0 and follow the code sample for "AVS app ONLY". Using that you should be able to get a token more directly (you need not worry about getting the profile information either - unless you require it for some reason) Thanks, Ryan V
Getting an access token does not necessarily mean that you have a correctly associated security profile. That's something you can only check through the developer portal, as mentioned above.
To answer your other question, the audio data is essentially an attachment to your actual request, which is the JSON data. You must send *both* in order to get a response back from AVS.