2011-10-31 30 views
6

Tôi biết câu hỏi đã được hỏi thường xuyên trước đây, nhưng tôi không thể nhận được giải pháp từ bất kỳ câu trả lời hoặc kết quả tìm kiếm nào. tôi phải giải quyết vấn đề này càng sớm càng tốt .. tôi đang cố gắng để có được những vĩ độ và kinh độ từ địa chỉ nhập bởi người sử dụng nhưng tôi tiếp tục nhận được:java.io.IOException: Không thể phân tích phản hồi từ máy chủ tại getFromLocationName()

java.io.IOException: Unable to parse response from server 

Tôi đang sử dụng mã này:

 Geocoder geocoder = new Geocoder(this ,Locale.getDefault()); 
     String newAddress = (String)saveas.getText().toString(); 
     List<Address> addresses = geocoder.getFromLocationName(newAddress, 1); 

Tôi đã thử rất nhiều cách khác nhau nhưng không có tác dụng ... Ứng dụng bản đồ mặc định hoạt động tốt, khi người dùng nhập địa chỉ hiển thị thành công địa chỉ đó trên bản đồ .. Làm cách nào tôi có thể làm như vậy .. ?

tôi đã thêm tất cả các điều khoản cần thiết và tôi đang thử nghiệm nó trên thiết bị thực tế (phiên bản 2.3) ...

+0

saveas ở đây là Edittext là gì? – ingsaurabh

+0

có, đó là EditText .. –

+0

Bạn đã thử gỡ lỗi này trong Eclipse hay đặt nhật ký trên newAddress để biết biến chứa gì? – Sephy

Trả lời

0

Tôi không biết nếu nó giúp BTW dưới đây là đoạn từ dự án của tôi làm việc tốt sửa đổi nó cho phù hợp với nhu cầu của bạn

String newAddress = saveas.getText().toString(); 
searchFromLocationName(newAddress); 


private void searchFromLocationName(String name){ 
try { 
    List<Address> result 
    = myGeocoder.getFromLocationName(name, MAX_RESULT); 

    if ((result == null)||(result.isEmpty())){ 
    Toast.makeText(AndroidgetFromLocationNameActivity.this, 
    "No matches were found or there is no backend service!", 
    Toast.LENGTH_LONG).show(); 
    }else{ 

    MyArrayAdapter adapter = new MyArrayAdapter(this, 
     android.R.layout.simple_list_item_1, result); 
    listviewResult.setAdapter(adapter); 

    Toast.makeText(AndroidgetFromLocationNameActivity.this, 
    "Finished!", 
    Toast.LENGTH_LONG).show(); 
    } 


} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    Toast.makeText(AndroidgetFromLocationNameActivity.this, 
    "The network is unavailable or any other I/O problem occurs!", 
    Toast.LENGTH_LONG).show(); 
} 
} 
1

Nó có thể hữu ích nếu bạn thiết lập các tham số locale khi tạo Geocoder:

yourGeocoder = new Geocoder(this, Locale.CANADA); 

Hãy thay thế tham số thứ hai với giá trị tốt nhất.

Tôi đoán rằng giá trị mặc định của miền địa phương có thể không tương ứng với khu vực bản đồ mà bạn sử dụng.

2

Bạn đã thử qua kết nối 3G chưa? Tôi đã nhận thấy rằng nếu bạn gửi một số yêu cầu định vị ngược từ wifi, có vẻ như IP của bạn bị chặn sau một thời gian và vị trí địa lý ngược lại sẽ không phản hồi trong một khoảng thời gian. Chuyển sang 3G đã thực hiện yêu cầu cho tôi khi tôi gặp sự cố tương tự.

2

Tôi gặp vấn đề tương tự với Samsung Galaxy Tab 10.1. Tôi tìm kiếm giờ cho một giải pháp và không có gì giúp đỡ. Để khắc phục vấn đề thử sau:

Đến Cài đặt vị trí và kích hoạt:

1.Use mạng không dây vệ tinh GPS 2.Sử dụng

chờ đợi cho vị trí GPS sửa chữa

Sau này, geocoder máy chủ bắt đầu trả lời. Ngay cả khi tôi vô hiệu hóa vị trí không dây và GPS là máy chủ vẫn hoạt động. Tôi cho rằng chỉ bộ mã hóa địa lý có thể được sử dụng nếu bạn chia sẻ vị trí của mình với Google.

+0

Cảm ơn, Nó đã hiệu quả với tôi! – kikettas

0

Có lẽ điện thoại của bạn chưa được kết nối và không thể truy xuất câu trả lời từ máy chủ.

Như đã giải thích here geocoder

throws IOException if the network is unavailable or any other I/O problem occurs 
2

tôi giải quyết cùng một vấn đề thay đổi bối cảnh.

tôi sử dụng Fragment, do đó, mã của tôi là như thế này

public class SearchRoteFragment extends Fragment{ 

     @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.teste_mapa, container, false); 
     context = getActivity(); 
... 
} 

và khi tôi gọi geocode Tôi làm điều này

Geocoder geoCoder = new Geocoder(context, Locale.getDefault()); 
0

tôi đã được thử nghiệm trên Android 2.3.4, và đã nhận được "Unable to phân tích cú pháp phản hồi từ máy chủ "ngoại lệ.

Đảm bảo bản đồ google của bạn đang hoạt động, tôi không hoạt động! Khi bản đồ google bắt đầu hoạt động Geocoder là tốt.

Tôi đã bật "Sử dụng mạng không dây" & "Sử dụng vệ tinh GPS" từ cài đặt "Vị trí & bảo mật".

Các vấn đề liên quan