2013-04-17 34 views
10

Thành phần bản đồ Google (com.google.android.gms.maps.GoogleMap) cho phép một thành phần hiển thị các lát tùy chỉnh (OpenStreetMap hoặc khác). Các ô này có thể có trên thiết bị và khả dụng ngoại tuyến, đó là những gì tôi đang thực hiện bằng cách mở rộng TileProvider. Thực hiện việc này cùng với một:Sử dụng API Google Maps android v2 làm người xem lát ngoại tuyến: có thể không?

mMap.setMapType(GoogleMap.MAP_TYPE_NONE); 

Tôi không lấy bất kỳ dữ liệu nào từ máy chủ bản đồ Google và hợp phần có thể được mong đợi làm việc mà không cần kết nối internet. (Tôi nhấn mạnh ở đây rằng Tôi không cố gắng để bộ nhớ cache dữ liệu của Google;. Tôi đang làm việc với gạch ẩn độc lập với máy chủ bản đồ của Google)

Tôi nghĩ tất cả mọi thứ vẫn ổn cho đến khi tôi nhận ra rằng các thành phần bản đồ sẽ không hoạt động nếu, khi được thực hiện lần đầu tiên, thiết bị sẽ ngoại tuyến. Trong những trường hợp như vậy, tôi nhận được thông báo:

không tải được bản đồ. không thể liên hệ với máy chủ google

Tôi tưởng tượng lý do đằng sau đây là các khóa API của Google yêu cầu ứng dụng của tôi xác thực để thành phần được phép thực thi.

Có ai xác nhận điều này là chính xác không? Những gì tôi thực sự muốn chắc chắn là với điều kiện là thành phần được thực hiện một lần trực tuyến, nó sẽ chạy ok sau đó. Tôi phải chắc chắn rằng không có vấn đề hết thời gian mà sẽ yêu cầu các thành phần để xác thực lại sau này và về cơ bản sẽ làm cho ứng dụng của tôi vô dụng. Điều đó sẽ yêu cầu tôi chuyển sang một số thành phần khác (chẳng hạn như hệ điều hành Android).

Mọi ánh sáng về điều này sẽ được đánh giá cao. Ngay cả khi được chỉ vào kênh mà tôi có thể hy vọng nhận được câu trả lời từ các nhà phát triển Google sẽ hữu ích.

Cảm ơn

+0

"Thậm chí bị chỉ vào kênh mà qua đó tôi có thể hy vọng sẽ nhận được phản hồi từ các nhà phát triển google sẽ có ích" - http://code.google.com/p/gmaps-api-issues/issues/list – CommonsWare

+0

Cảm ơn nhận xét. Các vấn đề tôi đã được chỉ là quá hữu ích. – guibar

+0

Tìm giải pháp tốt hơn? Tôi đang chạy vào cùng một vấn đề. Tôi đang tải ứng dụng của mình lên điện thoại có thể không bao giờ có quyền truy cập internet, có vẻ vô lý khi phải xác minh khóa API nếu tôi không định sử dụng bản đồ. – lostintranslation

Trả lời

8

Tính đến 3.0.27 của Google Play Services APK nó là cố định và máy chủ được yêu cầu để được liên lạc chỉ một lần. Bạn sẽ thấy lỗi trong logcat mọi lúc, nhưng nó sẽ hoạt động. Thông tin

More đây: http://code.google.com/p/gmaps-api-issues/issues/detail?id=4817

và ở đây: http://code.google.com/p/gmaps-api-issues/issues/detail?id=5017

+1

Cảm ơn câu trả lời hữu ích này. Tôi vẫn còn nghi ngờ sau khi đọc các vấn đề bạn đã chỉ ra. Họ nói: "Điều này sẽ được khắc phục bằng bản cập nhật mới nhất cho dịch vụ Google Play APK (3.0.27). Vẫn còn yêu cầu kết nối internet khi ứng dụng được tải lần đầu tiên nhưng không còn vấn đề với sau này mở ứng dụng và sử dụng bản đồ trong khi không có kết nối. " Bằng cách "tải đầu tiên", chúng có nghĩa là lần đầu tiên nó được chạy hoặc chỉ cần cài đặt nó với kết nối là đủ? Trong trường hợp của tôi, có vẻ như cần thiết để chạy ứng dụng một lần. – guibar

+1

Bắt buộc phải chạy kết nối internet lần đầu tiên. –

+0

Có những cách mà nhân viên Google có thể cải thiện điều đó: 1) không bắt buộc phải xác minh, điều này sẽ hữu ích khi bạn sử dụng MAP_TYPE_NONE 2) Dịch vụ của Google Play APK có thể lẻn vào các ứng dụng đang được cài đặt và khi tìm thấy ứng dụng sử dụng bản đồ hoặc bất kỳ API nào khác xác minh khóa API ngay sau khi cài đặt - đây là khi bạn thường có kết nối internet. Có thể đưa ra yêu cầu tính năng như thế này trên gmaps-api-issues? –

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