Android; Geocoder-warum erhalte ich die Meldung "der Dienst ist nicht verfügbar"?
Möchte ich die Verwendung der Geocoder in einem android-Anwendung, habe ich das folgende Stück code-Beispiel :
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();
}
}
}
Bekomme ich die folgende stack-trace :
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)
Warum ist der Dienst nicht verfügbar? Ich habe Folgendes in meinem manifest
<uses-permission android:name="android.permission.INTERNET"/>
Den Dokumentation Staaten : The Geocoder class requires a backend service that is not included in the core android framework
wie/wo bekomme ich so ein service?
InformationsquelleAutor der Frage Jimmy | 2010-09-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es ein bug im emulator für 2.2
http://code.google.com/p/android/issues/detail?id=8816
InformationsquelleAutor der Antwort Ben English
Dies ist die einzige Lösung für dieses problem....
InformationsquelleAutor der Antwort IshRoid
Ich habe auch angesichts dieser Art von Problemen wie
geo.getFromLocationName
null zurückgeben, oder diese Art von Ausnahme-so finden Sie die alter-net-Lösung ist das ich verwendet habe, Google-api, um lat/long und hier ist die link zur Referenz.InformationsquelleAutor der Antwort Girish Bhutiya