Я сделал проект заказа такси, который использует api карт Google для поиска такси, мест посадки и высадки.
Проблема в том, что когда я запрашиваю поездку, возникает следующая ошибка:
This API project is not authorized to use this API
Обратите внимание, что я включил все службы api карты Google, а затем восстановил ключ, и проблема все еще существует.
Как это решить?
Я уже видел это решение и включил службы api геокодирования и геолокации, но проблема все еще возникает.
Вам необходимо включить необходимые API в консоли разработчика Google: https://console.developers.google.com/
Выберите свой проект в верхнем левом углу, а затем нажмите кнопку «ВКЛЮЧИТЬ API И УСЛУГИ» на панели инструментов.
Обратите внимание, что вам может потребоваться включить более 1 API (маршруты, геолокация, геокодирование и т. д.) В зависимости от ваших требований.
Если вы думаете, что включили все, то вы можете пропустить изменение файла manifest.xml
, например:
<meta-data
android:name = "com.google.android.geo.API_KEY"
android:value = "@string/google_maps_key" />
<meta-data
android:name = "com.google.android.gms.version"
android:value = "@integer/google_play_services_version" />
Добавьте эти теги в тег application
Я добавляю этот тег, перестраиваю / очищаю проект, но проблема все еще существует :(
Я нашел ответ,
Проблема была в моем коде в этой строке:
public void requestDirection() {
snackbar = Snackbar.make(view, getString(R.string.fare_calculating), Snackbar.LENGTH_INDEFINITE);
snackbar.show();
GoogleDirection.withServerKey(getString(R.string.google_api_key))
.from(origin)
.to(destination)
.transportMode(TransportMode.DRIVING)
.execute(this);
confirm.setEnabled(false);
}
Значение R.string.google_api_key's
было загружено другим ключом от strings.xml
. На данный момент я дал прямое значение withServerKey, пока не обнаружил проблему с моим strings.xml.
.
public void requestDirection() {
snackbar = Snackbar.make(view, getString(R.string.fare_calculating), Snackbar.LENGTH_INDEFINITE);
snackbar.show();
GoogleDirection.withServerKey("[api key]")//getString(R.string.google_api_key))
.from(origin)
.to(destination)
.transportMode(TransportMode.DRIVING)
.execute(this);
confirm.setEnabled(false);
}
Чтобы решить эту проблему, если вы нажмете ломаную линию Api:
Необходимо включить API: