在Android中验证地址输入

在Android中验证地址输入,android,street-address,Android,Street Address,在我的应用程序中,我必须输入一个用户地址(美国)。用户需要键入有效地址。我怎样才能做到这一点?有没有图书馆可以帮我查一下州名、城市名和街道名?如果可能的话,我想使用复写。我读过地理编码,但我认为它对我没有帮助,因为用户没有从当前位置输入地址。为什么不验证区号?你这样做应该是省钱的 这就是我使用Google API查找位置的方法。也许它会帮助你: Geocoder geoCoder = new Geocoder(context, Locale.getDefault());

在我的应用程序中,我必须输入一个用户地址(美国)。用户需要键入有效地址。我怎样才能做到这一点?有没有图书馆可以帮我查一下州名、城市名和街道名?如果可能的话,我想使用复写。我读过地理编码,但我认为它对我没有帮助,因为用户没有从当前位置输入地址。

为什么不验证区号?你这样做应该是省钱的

这就是我使用Google API查找位置的方法。也许它会帮助你:

     Geocoder geoCoder = new Geocoder(context, Locale.getDefault());    
        try {
            List<Address> addresses = 
                    geoCoder.getFromLocationName(travel.getAddress() + "," + 
            travel.getCity() + "," + travel.getState() + "," + travel.getCountry(), 3);

            if (addresses.size() > 0) {
                point = new GeoPoint(
                        (int) (addresses.get(0).getLatitude() * 1E6), 
                        (int) (addresses.get(0).getLongitude() * 1E6));
                travel.setLatitude(String.valueOf(point.getLatitudeE6()));
                travel.setLatitude(String.valueOf(point.getLongitudeE6()));
                long res = travel.update(context, null);
                if (res < 1){
                    result = false;
                }

            }    
        } catch (IOException e) {
            e.printStackTrace();
            result = false;
        }
Geocoder-Geocoder=new-Geocoder(context,Locale.getDefault());
试一试{
列表地址=
geoCoder.getFromLocationName(travel.getAddress()+“,”+
travel.getCity()+”,“+travel.getState()+”,“+travel.getCountry(),3);
如果(地址.size()>0){
点=新的地质点(
(int)(addresses.get(0.getLatitude()*1E6),
(int)(addresses.get(0.getLongitude()*1E6));
travel.setLatitude(String.valueOf(point.getLatitude6());
travel.setLatitude(String.valueOf(point.getLongitudeE6());
long res=travel.update(上下文,null);
如果(res<1){
结果=假;
}
}    
}捕获(IOE异常){
e、 printStackTrace();
结果=假;
}

有多种方法可以清理地址输入并将其标准化为预期格式。但验证地址以确保其真实性和正确性的唯一真正方法是使用地址验证服务

标准化一个地址是为了确保事情看起来很好——比如格式化和标准化一个电话号码或电子邮件地址。但仅仅拥有看起来不错的数据是不够的。你需要好的数据。例如,如果用户提供的信用卡可能很好,您会接受订单吗?还是你想要一张好的信用卡?地址也一样。如果您正在收集一个地址,那么知道它是真实的、可交付的,并且可以用于您的预期目的肯定会很好。否则,它只是垃圾数据——垃圾输入,垃圾输出


幸运的是,在您的情况下,由于用户在基于Android的设备上,他们很可能具有internet连接,这允许您对第三方地址验证服务执行查询。有许多服务提供街道地址验证。我是一家名为。我们可能正是你想要的。而且,根据您的数量和业务,它也可能是完全免费的。如果没有,那没什么大不了的,你还可以利用其他服务。

地址需要多精确?它只是邮政编码和州,还是你需要城市名称和街道地址呢。请记住,同一个地方可以有多个有效地址,因为例如,一条街道可能是一条编号也被命名为ex的公路:10号公路也被称为main st,它穿过斯普林菲尔德。它需要精确。GPS设备是如何做到的?它有州、市和街道号码,用户在其中键入,然后gps找到地址并显示给用户。如果用户同意,则继续查找路线。我也想要同样的东西。什么是旅游?