For a start, it's probably dangerous to assume that roads always run N-S or E-W. That's not taking into account situations where either geographical features, or the slow disorganised build-up of an urban area, has mandated roads that curve, or run NW-SE for example.
However, provided you have a means to extract relatively accurate GPS co-ordinates from a street address, you could try getting the co-ordinates for 1 John St
and 21 John St
and using the difference to calculate which direction the road goes at that point.
Short of finding a nice simple Android API call called something like GetStreetDirection()
, the differential GPS co-ordinates would be the first method I'd be looking at.