Проблема в том, что Directions API является веб-службой.Google предполагает, что веб-сервисы вызываются из внутреннего кода, а не напрямую из внешнего интерфейса.Таким образом, единственным ограничением, которое поддерживается веб-службами, такими как API-интерфейсы, API геокодирования и т. Д., Является ограничение IP-адресов.Предполагается, что вы отправляете запросы в Google со своего внутреннего сервера и защищаете свой ключ API по IP-адресу вашего сервера.Ограничение приложения Android не работает с веб-службами.
Здесь вы можете узнать, какой тип ограничения поддерживается каждым API: Какие ключи или учетные данные следует использовать для различных продуктов Карт?
Для мобильных приложений Google настоятельно рекомендует создать промежуточный сервер для запросов веб-службы HTTP.Таким образом, ваше приложение будет отправлять запросы на промежуточный сервер, промежуточный сервер будет отправлять запросы API направлений с API-ключом, защищенным IP-адресом, в Google и передавать ответ обратно в ваше приложение.
Я могу предложить использовать клиентскую библиотеку Java для GoogleВеб-службы API Карт для реализации промежуточного прокси-сервера:
https://github.com/googlemaps/google-maps-services-java
Также есть клиентские библиотеки, доступные для других внутренних языков (Python, Go, NodeJs):
https://github.com/googlemaps/google-maps-services-python
https://github.com/googlemaps/google-maps-services-go
https://github.com/googlemaps/google-maps-services-js
Надеюсь, мой ответ прояснит ваше сомнение.