Apparently the geo protocol on Android only handles coordinates, not addresses. I think it would be unnecessary to first geocode an address and then convert it into geo protocol format.

On the other hand, the map address handling procedure for Android happens as follows:
1. When an address link is clicked, it will first ask you how to open it. (Either in the browser or in the native app).
2. You can save your selection (e.g. native app) so that it will always do it that way.

I think this is sufficient for handling Android addresses. And since on non-iOS devices, maps.apple.com redirects to maps.google.com, current code works fine on Android devices as well.