2011-08-12 110 views

回答

4

有誰知道我可以如何停止從我自己的應用程序導航?

你不行。請允許用戶在他們感覺喜歡的時候退出導航。

+0

不幸的是我認爲這可能是答案。我需要的原因是,在我的應用程序中,它可以接收來自控件的「停止」消息,這意味着用戶不應再繼續前往目的地,但我想我只能提供一條消息或可能不得不使用另一條消息另一個軟件來做導航來解決這個問題。 – CDrnly

+0

@drnly:我假設你的「'停止'消息」正在被「BroadcastReceiver」或「Service」提取和傳遞。一方面,你可以讓那些彈出對話主題的活動或其他東西。另一方面,導航是你不想在視覺上中斷的事情,因爲用戶可能會遇到意外。也許考慮某種音頻警報 - 一個語音信息表明目的地已被取消。 – CommonsWare

+0

是的,消息在一個始終在後臺運行的服務中處理,因爲它主要是一個消息應用程序。目前,我會在透明背景中彈出消息作爲消息框(從服務開始),並且有足夠響亮的可聞噪聲。我意識到分心可能會導致事故,但同樣重要的是,在不需要的時候阻止用戶轉向目的地很重要,因爲這是浪費時間,在不需要的時候出現金錢並且繼續導航指令可能導致混淆。 – CDrnly

0

我找到的只有一項工作, 使用當前位置重新開始導航,因此導航將自動完成。

public static void startNavigationIntent(Context activity, String destination) 
    { 
     Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("google.navigation:q=" + destination)); 
     activity.startActivity(intent); 
    } 

然後將您的應用程序放到前臺。

Intent bringToForegroundIntent = new Intent(BackgroundLocationService.this, DashboardActivity.class); 
         bringToForegroundIntent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_NEW_TASK); 
         startActivity(bringToForegroundIntent);