First of all, I am familiar with Geocoder and Places API. For this reason, I do not ask about how can I get the whole address in the raw format by using these. I am looking for getting the formal address of somewhere. Since the places that can be getatable with Geocoder API is not organized, I could not reach provinces of two different LatLng value by calling the same place unit. To exemplify, I can get the city corresponds to my current location by calling .adminArea() but my friend's location may be returned as his hood from .adminArea(). Thus, I could not get the string of city from Geocoder object although the address of this object contains the name of the city.
Is there another API that can give me the correct street/locality/city if I call the relavent methods? Or is there a way to parse address of Geocoder object so that I can get the cleanest address components?