-
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:
- Source Xử Lý Ảnh Một Số Giải Thuật Cơ Bản Cho AE Tham Khảo
- Cách dùng Webservice có thể kết nối đến 1 android client?
- http post for Restful Wcf service trong android app !!!!
- lỗi chương trình bị giật khi gọi list.add()
- Nhận dạy kèm khóa học lập trình Android Apps/Games từ Cơ Bản đến Nâng Cao
- Thêm nút chớp tắt đèn flash liên tục thì làm sao?
- Ghi dữ liệu vào file text trong android lỗi đường dẫn?
- Không kết nối được với Google API trong Android
- Service bị tắt khi kill app thì xử lý thế nảo
- Cách lưu trữ và hiển thị đoạn văn bản trên Android?
-
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 ^^
Với sự đa dạng và phong phú về mẫu mã và giá cả, choxeonline.vn hứa hẹn sẽ là địa chỉ tin cậy cho những ai đang tìm kiếm chiếc xe ô tô ưng ý. Từ những mẫu xe hạng sang đến những chiếc xe gia đình...
Khám Phá Đa Dạng Sản Phẩm Xe Ô Tô...