Assuming 'data' is the array where you receive your bytes on the Android side, what you can do is:
This re-assembled the 32bit-value from the array. Each byte is converted into an int first, and then the upper part is truncated, which makes it unsigned again.
Sorry I didn't respond earlier! This is very similar to what I attempted on the Android side, and thanks for the reassurance that I was on the right track. I eventually decided that using the getIntValue function would probably be the most reliable, and that meant there was an error in my PSoC code somewhere (which there was). Thanks for your response.