Yes you can do that. You will need to write a Service, you can start it on boot. You can use "Google Maps for Android API" to request one time location data using LocationClient.getLastLocation() whenever you receive GCM message. And once you have the Lcoation, you can send Lat/Lng Coordinates back into your server.
You can also do reverse geocoding, geofencing and activity recognition with the API. Please be careful with users location data.
Here's where you can start: