android - Android Geocoder 是否仅适用于互联网连接?

标签 android google-geocoder android-maps-v2

我正在尝试使用 onMapLongClickListener(LatLng 点)在 Google map 上获取点击的地址,使用该点的纬度和经度并将它们转换为带有地理编码器的地址。如果我已连接,它工作正常到互联网,但如果我不是应用程序崩溃,因为 getFromLocation 方法给出了一个空结果。 所以我想 Geocoder 类只能在启用连接的情况下工作。是这样吗?有没有办法让地址保持离线状态?

这是方法的代码:

public void onMapLongClick(LatLng point) {
            List<Address> addresses = null;
            try {
                addresses = geocoder.getFromLocation(point.latitude, point.longitude, 1);
            } catch (IOException e) {
                e.printStackTrace();
            }
            String address = addresses.get(0).getAddressLine(0);
            String city = addresses.get(0).getAddressLine(1);
            String country = addresses.get(0).getAddressLine(2);
            String str = address + ", " + city + ", " + country;
            gMap.addMarker(new MarkerOptions()
            .position(point)
            .title("Clicked Point")
            .draggable(false)
            .snippet(address + ", " + city + ", " + country));
            Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
            v.vibrate(50);
        }    

这些是权限:

<uses-permission android:name="com.example.mappine.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.VIBRATE" />

最佳答案

是的。您知道完整的地理编码器需要多少数据吗?您不会将其存储在手机上。

关于android - Android Geocoder 是否仅适用于互联网连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16258898/

相关文章:

javascript - 在 Canvas 上实现垂直滚动

android - GeoCoder 服务不可用

android - API Maps v2 自定义信息窗口中的 RelativeLayout 宽度

android - 在显示 DialogFragment 时禁用基础 View 上的触摸事件

java - 关于Java中的Locale类

react-native - 如何在 React Native 中解决 "Error from the server while geocoding...."?

iOS - 目标 - C Google Maps 使用未声明的标识符

android - 如何在 android 中将 google map api key 从调试更改为发布?

Android 谷歌地图无法在 fragment 中工作

android - 如何在 fragment 类中创建 datePicker 和 timePicker 对话框?