-
16-09-2014, 08:51 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Đang ở
- Hà Nội
- Bài viết
- 0
Không kết nối được với Google API trong Android
Chào mọi người. Mình có viết một đoạn code sau để lấy thông tin các địa điểm tọa độ nào đó. Đoạn code này khi chạy demo trên Java Project thì vẫn nhận được dữ liệu bình thường. Nhưng khi chuyển sang Android thì lại có lỗi chỗ connect ra ngoài internet.
Mình đã thử thay Key browser thành Key android khi chuyển sang Android nhưng vẫn không có tác dụng.
Bạn nào có kinh nghiệm giúp mình với. Tks! [IMG]images/smilies/biggrin.png[/IMG]
PS: Mới học java và cũng mới đụng tới bộ eclipse. (^_^)
Mã:public class API { private String API = "https://maps.googleapis.com/maps/api/place/search/json?"; private String KEY = "&key=AIzaSyBcvusHiiNW6tWWnKdJoM6h5QEe3O49TIU";//Key browser private String LOCATION = "&location="; private String KEYWORD = "?keyword="; private String RADIUS = "&radius=1500"; public ArrayList<Data> findNearPlace(Double x, Double y) { ArrayList<Data> results = null; StringBuilder link = new StringBuilder(API + LOCATION + x + "," + y + KEY + RADIUS); URL url; HttpURLConnection con; InputStreamReader reader; StringBuilder json = new StringBuilder(); try { url = new URL(link.toString()); con = (HttpURLConnection) url.openConnection(); reader = new InputStreamReader(con.getInputStream()); int Pos = 0; char buffer[] = new char[1024]; while ((Pos = reader.read(buffer)) != -1) { json.append(buffer, 0, Pos); } JSONObject obj = new JSONObject(json.toString()); JSONArray array = obj.getJSONArray("results"); results = new ArrayList<Data>(array.length()); for (int i = 0; i < array.length(); i++) { Data data = new Data(); data.name = array.getJSONObject(i).getString("name"); JSONObject location = array.getJSONObject(i) .getJSONObject("geometry").getJSONObject("location"); data.lat = location.getDouble("lat"); data.lng = location.getDouble("lng"); results.add(data); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return results; } }
View more random threads:
- Làm sao để stop thread trong android ?
- [Hỗ trợ] Topic hỗ trợ anh em developer
- Cần tư vấn lập trình Android
- lỗi "the application has unexpecty quit" khi chạy chương trình là do đâu?
- Ghi dữ liệu vào file text trong android lỗi đường dẫn?
- Thêm nút chớp tắt đèn flash liên tục thì làm sao?
- Tạo db với SQLite ở trong project như nào???
- Cách thiết lập môi trường Biên dịch Android-x86 trên Ubuntu 32bit
- Không kết nối được với Google API trong Android
- ListView ko cập nhật được mẫu tin thứ 2
-
16-09-2014, 09:36 AM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Add permission Internet.
-
16-09-2014, 09:41 AM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mình thêm hết rồi. Các thành phần được thêm vào trong file manifest của mình:
Mã:<permission android:name="tranminh.luan.onclicktofind.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-permission android:name="tranminh.luan.onclicktofind.permission.MAPS_RECEIVE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> - <!-- Required to show current location --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> - <!-- Required OpenGL ES 2.0. for Maps V2 --> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyDn51IuESBG06QsoS9aCbh9-3Cjp9RDX6M" />
-
16-09-2014, 10:38 AM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Xem device có bị chặn proxy gì gì không ?
Project tạo ra có phải là dạng Google API không?
Mã lỗi trả về ở đoạn nào? Lỗi là gì?
-
16-09-2014, 05:00 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Debug tới chỗ reader = new InputStreamReader(con.getInputStream());
thì nhận được một cái exception sau:
NetworkOnMainThreadException
Sau đó chương trình Unfortunate, has stoped.
- - - Nội dung đã được cập nhật ngày 16-09-2014 lúc 10:00 PM - - -
Search mãi thì cũng fix xong lỗi.
Có một trang blog nói là từ phiên bản android API 10 trở lên các hàm truy cập đến internet phải được chạy trong một thread riêng. Làm một cái AsyncTask là vấn đề được giải quyết.
Cám ơn bạn nhiều lắm ^^
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...