Tested C2DM a few times but not sure about quotas and limitations.
This scares me a little:
Are you using C2DM for payload? C2DM is meant as a means to notify your application that there are messages available for it. You should not carry your data payload through C2DM. Instead, consider adapting your design so that the C2DM message causes your application to connect to your servers in order to retrieve the pending messages.
Are you sending C2DM messages too frequently? If you need to communicate with your application frequently over a short period of time, C2DM is probably not the best solution. Instead, consider implemeting XMPP or your own protocol to exchange messages, and use C2DM only to send the initial notification.
It is very unclear what scalability C2DM offers and when you need to pay or better, is there actually a way to get more messages?
What about PubNub? Seems to be a better solution.
https://github.com/pubnub/pubnub-api/tree/master/android
Not sure how much work it would be to create a wrapper.
This scares me a little:
Are you using C2DM for payload? C2DM is meant as a means to notify your application that there are messages available for it. You should not carry your data payload through C2DM. Instead, consider adapting your design so that the C2DM message causes your application to connect to your servers in order to retrieve the pending messages.
Are you sending C2DM messages too frequently? If you need to communicate with your application frequently over a short period of time, C2DM is probably not the best solution. Instead, consider implemeting XMPP or your own protocol to exchange messages, and use C2DM only to send the initial notification.
It is very unclear what scalability C2DM offers and when you need to pay or better, is there actually a way to get more messages?
What about PubNub? Seems to be a better solution.
https://github.com/pubnub/pubnub-api/tree/master/android
Not sure how much work it would be to create a wrapper.