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

use*_*149 5 android google-geocoder android-maps-v2

我正在尝试使用onMapLongClickListener(LatLng点)在Google地图上获取点击的地址,使用点的lat和lng并使用Geocoder在地址中转换它们.如果我连接到Internet,它可以正常工作但如果我不是应用程序崩溃,因为getFromLocation方法给出null结果.所以我认为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);
        }    
Run Code Online (Sandbox Code Playgroud)

这些是权限:

<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" />
Run Code Online (Sandbox Code Playgroud)

Gab*_*han 14

是.您知道完整地理编码器需要多少数据吗?你不是把它存放在手机上.

  • 然而,TomTom、Navigon 等地理编码提供商已经通过将离线地理编码数据与其 Android 应用程序捆绑在一起并将其安装在您的 Android 设备上来做到这一点。我不明白离线地理编码数据有什么大惊小怪的。通过 Internet 连接使用反向地理编码仅适用于那些使用大数据计划的人。那些使用有限数据计划的人最好使用离线数据选项。 (3认同)