Tôi đang sử dụng phương thức Geocoder.getLocationFromName() trên cả trình giả lập và điện thoại của tôi (Nexus S với Android 4.1) và tôi nhận được ngoại lệ sau:Android Geocoder.getLocationFromName() ném IOException: Dịch vụ không khả dụng trên Thiết bị
java.io.IOException: Service not Available
Có một số câu hỏi về điều này xuất hiện trên trình mô phỏng (example) và hầu hết trong số họ nói rằng đó là phiên bản trình mô phỏng cụ thể có sự cố. Tuy nhiên, ngoại lệ xuất hiện cả trên AVD (2.3 và 4.1) và điện thoại của tôi.
Cả điện thoại và AVD đều có kết nối internet. Phiên bản API của tôi là 16 (android 4.1), nhưng tôi cũng đã thử với các phiên bản cũ hơn. Cả AVD đều bao gồm các API của Google.
Bất kỳ ý tưởng gì đang diễn ra ở đây?
Đây là đoạn mã liên quan:
Geocoder myGeocoder = new Geocoder(getApplicationContext(), Locale.getDefault());
List<Address> newAddresses = myGeocoder.getFromLocationName(arg0.toString(), 10);
Và đây là biểu hiện của tôi:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.asdasd" android:versionCode="6" android:versionName="1.3.1">
<uses-sdk android:minSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<application android:icon="@drawable/ic_launcher_asdasd"
android:label="@string/app_name">
<activity android:name=".AsdasdActivity" android:label="@string/app_name"
android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation" />
</application>
</manifest>
Chỉ để tham khảo, cũng có thể liên quan đến vấn đề này: http://code.google.com/p/android/issues/detail?id=38009 Khởi động lại thiết bị dường như khắc phục vấn đề này. – Somatik
Không có vấn đề bao nhiêu khởi động lại tôi đã làm, nó đã không làm gì trong trường hợp của tôi. –