Tôi muốn sử dụng Geocoder trong một ứng dụng android, tôi đã có những đoạn mã sau đây để lấy mẫu nó:Android; Bộ mã hóa địa lý, tại sao tôi nhận được "dịch vụ không khả dụng"?
public class LocatorGeo extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Geocoder geo = new Geocoder(getApplicationContext());
List<Address> myAddrs = new ArrayList<Address>();
try {
myAddrs = geo.getFromLocationName("CO100AR", 1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
tôi nhận được stack trace sau:
09-01 15:52:38.809: WARN/System.err(334): java.io.IOException: Service not Available
09-01 15:52:38.819: WARN/System.err(334): at android.location.Geocoder.getFromLocationName(Geocoder.java:159)
09-01 15:52:38.829: WARN/System.err(334): at com.jameselsey.LocatorGeo.onCreate(LocatorGeo.java:25)
09-01 15:52:38.829: WARN/System.err(334): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-01 15:52:38.839: WARN/System.err(334): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
09-01 15:52:38.849: WARN/System.err(334): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
09-01 15:52:38.849: WARN/System.err(334): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
09-01 15:52:38.868: WARN/System.err(334): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
09-01 15:52:38.868: WARN/System.err(334): at android.os.Handler.dispatchMessage(Handler.java:99)
09-01 15:52:38.879: WARN/System.err(334): at android.os.Looper.loop(Looper.java:123)
09-01 15:52:38.889: WARN/System.err(334): at android.app.ActivityThread.main(ActivityThread.java:4627)
09-01 15:52:38.899: WARN/System.err(334): at java.lang.reflect.Method.invokeNative(Native Method)
09-01 15:52:38.909: WARN/System.err(334): at java.lang.reflect.Method.invoke(Method.java:521)
09-01 15:52:38.919: WARN/System.err(334): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-01 15:52:38.929: WARN/System.err(334): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-01 15:52:38.929: WARN/System.err(334): at dalvik.system.NativeStart.main(Native Method)
Tại sao dịch vụ Không sẵn có? Tôi đã điều sau đây trong manifest
<uses-permission android:name="android.permission.INTERNET"/>
Các documentation tiểu bang của tôi: The Geocoder class requires a backend service that is not included in the core android framework
, làm thế nào/nơi tôi có thể có được một dịch vụ như vậy?
Có vẻ tôi không phải là người duy nhất: http://code.google.com/p/android/issues/detail?id= 8816 – Jimmy
Đối với bất kỳ ai ngoài đó. Có cùng một vấn đề, có vẻ như sử dụng Geocoder trên trình mô phỏng là vô ích. Tôi chỉ kiểm tra nó trực tiếp trên điện thoại, bạn cũng có thể sử dụng [isPresent()] (http://developer.android.com/reference/android/location/Geocoder.html#isPresent()) để kiểm tra có một bộ mã hóa địa lý thực hiện. – gideon