我编写了一个简单的 Activity 来测试 Geocoder 的存在,调用 Geocoder.isPresent() 总是返回 false。

类(class):

public class LocationTestActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        LocationManager locationManager = (LocationManager)  this.getSystemService(Context.LOCATION_SERVICE);
        Log.d( "LocationTestActivity", "Geocoder.isPresent : " + Geocoder.isPresent() );

    }
}

AndroidManifest.xml 在“application”元素之前还有以下条目:
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

环境:XP Professional 2002 SP 3 上的 Eclipse Indigo 3.7.1、ICS 4.0 模拟器

请帮我理解:
1. 为什么 Geocoder.isPresent() 总是返回 false?
2. 要进行哪些更改才能使 Geocoder.isPresent() 返回 true?

非常感谢!

最佳答案

实际上 Geocoder 需要一个由框架在后台运行的服务。

从文档:



因此,如果我们查看 isPresent() 的文档,它会指出。



注意: 请记住,isPresent() 在 Pre-Api 9 平台中不可用。

关于android - Geocoder 的 isPresent() 方法总是返回 false,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9075446/

10-13 00:26