Первый запуск приложения для Android с Google Maps, без интернета - PullRequest
0 голосов
/ 13 сентября 2018

Когда мои пользователи запускают мое приложение с картами Google, и у них нет Интернета, вызывается OnMapReady , но я не могу поставить маркеры или загрузить оверлеи.Как я могу определить, подтвердил ли GoogleMaps мой APIKEY и готов ли он для наложения оверлеев и маркеров, прежде чем пользователь достигнет Интернета?В настоящее время он отображает пустой экран, который не очень удобен для новых пользователей.Я хочу обнаружить, что плитки карты не могут быть загружены прямо сейчас, и предупредить пользователя о подключении к Интернету.

1 Ответ

0 голосов
/ 03 октября 2018

Во-первых, невозможно использовать части Google Maps, защищенные API_KEY, до того, как пользователь достигнет Интернета, поскольку необходимо проверять API_KEY на стороне Google.Но вы можете использовать это для своей задачи: попробуйте (перед вашими действиями с картой) выполнить URL-адрес API Карт Google, который требует API_KEY (например, URL-адрес API-интерфейса ):

https://maps.googleapis.com/maps/api/directions/json?origin=Toronto&destination=Montreal&key=YOUR_API_KEY

...
URL url = new URL(buildDirectionsUrl("https://maps.googleapis.com/maps/api/directions/json?origin=Toronto&destination=Montreal&key=YOUR_API_KEY");
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();

int responseCode = connection.getResponseCode();
InputStream stream = connection.getInputStream();

reader = new BufferedReader(new InputStreamReader(stream));
StringBuilder jsonStringBuilder = new StringBuilder();

StringBuffer buffer = new StringBuffer();
String line = "";

while ((line = reader.readLine()) != null) {
    buffer.append(line+"\n");
    jsonStringBuilder.append(line);
    jsonStringBuilder.append("\n");
}

JSONObject jsonRoot = new JSONObject(jsonStringBuilder.toString());
...

, чем получитьи проанализируйте ответ (jsonRoot): если нет ответа в определенное время - нет подключения к Интернету или недоступен URL-адрес Google;если Google возвращает ошибку, вы можете проанализировать "error_message" (например, "Keyless access to Google Maps Platform is deprecated...") и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...