我编写了一个简单的 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/