2017-12-07 3 views
0

これは達成したいことです:私はLatLngオブジェクトを持っています。ユーザーがボタンをクリックすると、ユーザーがwazeまたはgooglemapを選択して に移動することができます(ユーザーが1つしか持っていない場合は、アプリに入り、ナビゲーションを開始します)(Wazeとgooglemapアプリを持っている場合は、また、オプションを持っている必要があります:ちょうど一度とデフォルトを設定し、ユーザーがボタンをクリックすると、特定のナビゲーションアプリを直接移動し、ナビゲーションを開始します) 私はそれらの1つの意図を作成する方法を知っていますが、それらのうちの2つを表示する暗黙の意図を作成することを知っています。ありがとうございました。wazeまたはgoogleを開いてナビゲーションを開始する暗示的な意図

btn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    LatLng location= new LatLng(34,118); // just for example 

    String urlWaze = "https://waze.com/ul?ll="+location.latitude+","+location.longitude; 
    Intent intentWaze = new Intent(Intent.ACTION_VIEW, Uri.parse(urlWaze)); 
    intentWaze.setPackage("com.waze"); 

    String uriGoogle = "google.navigation:q=" + location.latitude + "," + location.longitude; 
    Intent intentGoogleNav = new Intent(Intent.ACTION_VIEW, Uri.parse(uriGoogle)); 
    intentGoogleNav.setPackage("com.google.android.apps.maps"); 

    } 
} 

答えて

0

あなたはApp Chooserを使用できますが、あなたのアプリケーションから他のアプリを起動する場合は、チューで標準またはカスタムDialogを表示し、ユーザーの応答にintentWazeまたはintentGoogleNavを作ることができます。

+0

アンドロイドAPIによれば、チューザにはデフォルトのアプリがありません。つまり、ユーザーは毎回選択する必要があります。 –

+0

とにかく、選択ダイアログでカスタムDialogを表示し、アプリケーションでユーザーの選択を処理し、結果をPerferencesに保存してから、Google MapsまたはWazeを起動することができます。 –

関連する問題