Прежде всего, я использую Xamarin для Android, поэтому есть небольшие различия в синтаксисе для Android Java. Я запускаю приложение Google Maps из активности в своем собственном приложении для Android. Я выяснил, как запустить его по очереди в режиме поворота, давая направление голосовой навигации, пропуская обычную активность, на которую он обычно по умолчанию. Однако активность карты по умолчанию возникает очень кратко, прежде чем переходить в свою очередь по очереди. Я могу жить с этим.
Задача состоит в том, что пользователю нужно несколько раз щелкнуть кнопку "Назад", чтобы вернуться в мое приложение, а не один раз, когда оно идет от поворота к повороту, прямо обратно в мое приложение, и это то, что я бы предпочел. Я знаю, почему это так и естественно. Есть ли способ для моего приложения запустить карту в режиме голосовой навигации, но запустить ее в фоновом режиме, сохраняя мое приложение на переднем плане?
Я видел, что если я использую свою кнопку "назад", чтобы вернуться в мое приложение, то очередь поворота по очереди прекратится. Если я использую значок окна на дне телефона, чтобы увидеть все мои последние приложения и перенести мой на передний план после запуска приложения карт, направления голоса продолжают работать, и это то, что я хочу, и даже дает мне наложения уведомлений поверх моих приложение, которое отлично. Я не хочу, чтобы пользователь должен был использовать этот значок Windows, когда он хочет перенести мое приложение на передний план, и я не хочу, чтобы он использовал кнопку "Назад", потому что он остановит направление голоса. Так что это крутое место, и я не удивлюсь, если это всего лишь одно из тех поведений с поведением в телефоне, с которыми вам нужно жить, но я надеюсь, что кто-нибудь может предложить какие-либо предложения. Может быть, даже сделать его частью приложения для фрагментов? Но могли бы я просто получить их карты с этим, или я получу полную функцию голосовых указаний? Я думал, что могу получить это только из своего установленного приложения, а не из их библиотеки. Спасибо за прочтение.
Здесь мой текущий код
public void StartNavigation(string lat, string lng)
{
String strUri = "google.navigation:q=" + lat + "," + lng;
Intent Intent = new Intent(Android.Content.Intent.ActionView, Android.Net.Uri.Parse(strUri));
//Intent.SetClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
Intent.SetPackage("com.google.android.apps.maps");
Application.Context.StartActivity(Intent);
}