אפליקציית מפות Google ל-Android חושפת כמה כוונות (intents) שאפשר להשתמש בהן כדי להפעיל את מפות Google במצבים 'תצוגה', 'חיפוש', 'ניווט' או 'Street View'. אם אתם רוצים להטמיע מפה באפליקציה, תוכלו לעיין במדריך למתחילים של Google Maps Android API.
סקירה כללית
בעזרת כוונות אפשר להתחיל פעילות באפליקציה אחרת על ידי תיאור פעולה פשוטה שרוצים לבצע (למשל 'הצגת מפה' או 'הצגת מסלול הגעה לנמל התעופה') באובייקט Intent
. אפליקציית מפות Google ל-Android תומכת בכמה כוונות שונות, שמאפשרות להפעיל את אפליקציית מפות Google ולבצע אחת מארבע פעולות:
- הצגת מפה במיקום ובמרחק מצוינים.
- חיפוש מיקומים או מקומות והצגתם במפה.
- לבקש מסלול ממקום אחד למקום אחר. אפשר לקבל מסלולים לשלושה אמצעי תחבורה: נהיגה, הליכה ורכיבה על אופניים.
- הצגת תמונות פנורמיות ב-Google Street View.
בדף הזה מתוארים הכוונות שבהן אפשר להשתמש באפליקציית מפות Google ל-Android. מידע נוסף על Intents ומסנני Intent או על Intents נפוצים בפלטפורמת Android זמין במסמכי התיעוד למפתחים של Android.
בקשות לכוונה
כדי להפעיל את מפות Google באמצעות כוונה, קודם צריך ליצור אובייקט Intent
ולציין את הפעולה, מזהה ה-URI והחבילה שלו.
- פעולה: כל הכוונות במפות Google נקראות כפעולת תצוגה –
ACTION_VIEW
. - URI: כוונות במפות Google משתמשות בכתובת URL מקודדת שמציינת את הפעולה הרצויה, יחד עם נתונים מסוימים לביצוע הפעולה.
- Package: קריאה ל-
setPackage("com.google.android.apps.maps")
תבטיח שאפליקציית מפות Google ל-Android תעבד את ה-Intent. אם החבילה לא מוגדרת, המערכת תקבע אילו אפליקציות יכולות לטפל ב-Intent
. אם יש כמה אפליקציות זמינות, יכול להיות שהמשתמש יתבקש לבחור באפליקציה שבה הוא רוצה להשתמש.
אחרי שיוצרים את Intent
, אפשר לבקש מהמערכת להפעיל את האפליקציה הרלוונטית בכמה דרכים. שיטה נפוצה היא להעביר את Intent
לשיטה startActivity()
. המערכת תפעיל את האפליקציה הנדרשת – במקרה הזה מפות Google – ותפעיל את Activity
התואם.
Java
// Create a Uri from an intent string. Use the result to create an Intent. Uri gmmIntentUri = Uri.parse("google.streetview:cbll=46.414382,10.013988"); // Create an Intent from gmmIntentUri. Set the action to ACTION_VIEW Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); // Make the Intent explicit by setting the Google Maps package mapIntent.setPackage("com.google.android.apps.maps"); // Attempt to start an activity that can handle the Intent startActivity(mapIntent);
Kotlin
// Create a Uri from an intent string. Use the result to create an Intent. val gmmIntentUri = Uri.parse("google.streetview:cbll=46.414382,10.013988") // Create an Intent from gmmIntentUri. Set the action to ACTION_VIEW val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) // Make the Intent explicit by setting the Google Maps package mapIntent.setPackage("com.google.android.apps.maps") // Attempt to start an activity that can handle the Intent startActivity(mapIntent)
אם המערכת לא תזהה אפליקציה שיכולה להגיב לכוונה, יכול להיות שהאפליקציה תקרוס. לכן, לפני שמציגים למשתמש אחד מהכוונות האלה, צריך לוודא קודם שהאפליקציה המקבלת מותקנת.
כדי לוודא שאפליקציה זמינה לקבלת הכוונה, צריך להפעיל את השיטה resolveActivity()
באובייקט Intent
. אם התוצאה היא לא null, יש לפחות אפליקציה אחת שיכולה לטפל בכוונה, וניתן לבצע קריאה ל-startActivity()
בבטחה.
אם התוצאה היא null
, אין להשתמש בכוונה, ואם אפשר, צריך להשבית את התכונה שמפעילה את הכוונה.
Java
if (mapIntent.resolveActivity(getPackageManager()) != null) { ... }
Kotlin
mapIntent.resolveActivity(packageManager)?.let { ... }
לדוגמה, כדי להציג מפה של סן פרנסיסקו, אפשר להשתמש בקוד הבא:
Java
Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); if (mapIntent.resolveActivity(getPackageManager()) != null) { startActivity(mapIntent); }
Kotlin
val gmmIntentUri = Uri.parse("geo:37.7749,-122.4194") val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) mapIntent.setPackage("com.google.android.apps.maps") mapIntent.resolveActivity(packageManager)?.let { startActivity(mapIntent) }
מחרוזות שאילתה בקידוד URL
כל המחרוזות המועברות ל-Intents של מפות Google חייבות להיות מקודדות לפי URI. לדוגמה, המחרוזת '1st & Pike, Seattle' צריכה להפוך ל-1st%20%26%20Pike%2C%20Seattle
.
אפשר לקודד רווחים במחרוזת באמצעות %20 או להחליף אותם בסימן הפלוס (+).
אפשר להשתמש בשיטה android.net.Uri
parse()
כדי לקודד את המחרוזות.
לדוגמה:
Java
Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4192?q=" + Uri.encode("1st & Pike, Seattle"));
Kotlin
val gmmIntentUri = Uri.parse("geo:37.7749,-122.4192?q=" + Uri.encode("1st & Pike, Seattle"))
הצגת מפה
אפשר להשתמש בכוונה geo:
כדי להציג מפה במיקום ובמרחק התצוגה שצוינו.
geo:latitude,longitude?z=zoom
פרמטרים
latitude
ו-longitude
מגדירים את נקודת המרכז של המפה.z
מגדיר את רמת מרחק התצוגה הראשונית של המפה (אופציונלי). הערכים הקבילים נעים בין 0 (העולם כולו) ל-21 (בניינים ספציפיים). המגבלה העליונה יכולה להשתנות בהתאם לנתוני המפה שזמינים במיקום שנבחר.
דוגמאות
Java
// Creates an Intent that will load a map of San Francisco Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent);
Kotlin
// Creates an Intent that will load a map of San Francisco val gmmIntentUri = Uri.parse("geo:37.7749,-122.4194") val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) mapIntent.setPackage("com.google.android.apps.maps") startActivity(mapIntent)
חיפוש מיקום
משתמשים בכוונה הזו כדי להציג שאילתות חיפוש בתוך אזור צפייה ספציפי. כשבתוצאת השאילתה יש תוצאה אחת, אפשר להשתמש בכוונת הרכישה הזו כדי להציג סיכה במקום או בכתובת מסוימים, כמו ציון דרך, עסק, תכונה גיאוגרפית או יישוב.
geo:latitude,longitude?q=query geo:0,0?q=my+street+address geo:0,0?q=latitude,longitude(label)
פרמטרים
בנוסף לפרמטרים שמשמשים להצגת מפה, בחיפוש יש תמיכה בפרמטרים הבאים:
q
מגדיר את המקומות שרוצים להדגיש במפה. חובה לכלול את הפרמטרq
בכל הבקשות לרשת החיפוש. אפשר להזין מיקום בתור שם של מקום או כתובת. צריך לקודד את המחרוזת ככתובת URL, כך שכתובת כמו 'City Hall, New York, NY' צריכה להפוך ל-City+Hall,New+York,NY.label
מאפשרת להגדיר תווית מותאמת אישית במקום שזוהה במפה. צריך לציין אתlabel
כמחרוזת.
חיפוש לפי קטגוריה
אם תעבירו מונח חיפוש כללי, מפות Google ינסו למצוא מיקום ליד קו הרוחב/קו האורך שציינתם שתואם לקריטריונים שלכם. אם לא מציינים מיקום, מפות Google ינסו למצוא כרטיסי מוצר בסביבה. לדוגמה:
Java
// Search for restaurants nearby Uri gmmIntentUri = Uri.parse("geo:0,0?q=restaurants"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent); // Search for restaurants in San Francisco Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?q=restaurants"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent);
Kotlin
// Search for restaurants nearby val gmmIntentUri = Uri.parse("geo:0,0?q=restaurants") val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) mapIntent.setPackage("com.google.android.apps.maps") startActivity(mapIntent) // Search for restaurants in San Francisco val gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?q=restaurants") val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) mapIntent.setPackage("com.google.android.apps.maps") startActivity(mapIntent)
אפשר להטות עוד יותר את תוצאות החיפוש על ידי ציון פרמטר זום יחד עם מחרוזת השאילתה. בדוגמה הבאה, הגדלת התצוגה ל-10 תנסה למצוא מסעדות ברמת העיר במקום מסעדות בקרבת מקום.
Java
Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?z=10&q=restaurants"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent);
Kotlin
val gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?z=10&q=restaurants") val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) mapIntent.setPackage("com.google.android.apps.maps") startActivity(mapIntent)
חיפוש מיקום
כשמחפשים כתובת ספציפית, מוצגת סיכה במיקום הזה.
Java
Uri gmmIntentUri = Uri.parse("geo:0,0?q=1600 Amphitheatre Parkway, Mountain+View, California"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent);
Kotlin
val gmmIntentUri = Uri.parse("geo:0,0?q=1600 Amphitheatre Parkway, Mountain+View, California") val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) mapIntent.setPackage("com.google.android.apps.maps") startActivity(mapIntent)
בדוגמה שלמעלה מוגדר קו הרוחב/אורך 0
,0
, אבל הכתובת מועברת כמחרוזת שאילתה. כשמחפשים מיקום ספציפי מאוד, לא צריך לציין את קו הרוחב וקו האורך. עם זאת, אם אתם לא יודעים את הכתובת המדויקת, תוכלו לנסות להשפיע על תוצאות החיפוש על ידי ציון קואורדינטה. לדוגמה, חיפוש כתובת של 'רחוב ראשי' יחזיר יותר מדי תוצאות.
Java
// Searching for 'Main Street' will return too many results Uri gmmIntentUri = Uri.parse("geo:0,0?q=101+main+street");
Kotlin
// Searching for 'Main Street' will return too many results val gmmIntentUri = Uri.parse("geo:0,0?q=101+main+street")
הוספת קואורדינטות ל-URI של כוונת החיפוש תטה את התוצאות לכיוון אזור מסוים:
Java
// Searches for 'Main Street' near San Francisco Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?q=101+main+street"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent);
Kotlin
// Searches for 'Main Street' near San Francisco val gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?q=101+main+street") val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) mapIntent.setPackage("com.google.android.apps.maps") startActivity(mapIntent)
אם אתם יודעים שהחיפוש יחזיר ערך יחיד, כדאי להעביר תווית אופציונלית. צריך לציין את התוויות כמחרוזת, והן יופיעו מתחת לסמן המפה. הערה: התוויות זמינות רק כשהערך של q
מצוין כקואורדינטות של רוחב וחיוג.
Java
// Display a label at the location of Google's Sydney office Uri gmmIntentUri = Uri.parse("geo:0,0?q=Google+Sydney@-33.8666,151.1957"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent);
Kotlin
// Display a label at the location of Google's Sydney office val gmmIntentUri = Uri.parse("geo:0,0?q=-33.8666,151.1957(Google+Sydney)") val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) mapIntent.setPackage("com.google.android.apps.maps") startActivity(mapIntent)
במקום כתובת רחוב או קו אורך/רוחב, אפשר להציג סיכה במיקום ידוע באמצעות Plus Code.
Java
// Display the location of Google, San Francisco using a global plus code. Uri gmmIntentUri = Uri.parse("http://plus.codes/849VQJQ5+XX"); // Equivalently, define the same location using a local plus code gmmIntentUri = Uri.parse("https://plus.codes/QJQ5+XX,San%20Francisco"); // Construct and use the Intent as in the examples above
Kotlin
// Display the location of Google, San Francisco using a global plus code. var gmmIntentUri = Uri.parse("http://plus.codes/849VQJQ5+XX") // Equivalently, define the same location using a local plus code gmmIntentUri = Uri.parse("https://plus.codes/QJQ5+XX,San%20Francisco") // Construct and use the Intent as in the examples above
הפעלת מסלול מפורט
משתמשים בכוונה הזו כדי להפעיל ניווט במפות Google עם מסלול מפורט לכתובת או לקואורדינטות שצוינו. המסלול תמיד מתחיל מהמיקום הנוכחי של המשתמש.
google.navigation:q=a+street+address google.navigation:q=latitude,longitude
פרמטרים
q
: הגדרת נקודת היעד לחיפושים של ניווט. הערך הזה יכול להיות קואורדינטות של קווי אורך ורוחב או כתובת בפורמט של שאילתה. אם מדובר במחרוזת שאילתה שמחזירה יותר מתוצאה אחת, תיבחר התוצאה הראשונה.mode
מגדיר את שיטת התחבורה. השדה Mode הוא אופציונלי, וניתן להגדיר בו את אחת מהאפשרויות הבאות:d
לנסיעה (ברירת המחדל)b
לרכיבה על אופנייםl
לרכבים דו-גלגלייםw
להליכה
avoid
מגדיר תכונות שהמערכת תנסה להימנע מהן במסלול. האפשרות 'הימנעות' היא אופציונלית, ואפשר להגדיר אותה לאחת או יותר מהאפשרויות הבאות:t
לכבישי אגרהh
לכבישים מהיריםf
למעבורות
דוגמאות
Intent
הבא יגרום לבקשת ניווט מפורט אל גן החיות טארונגה בסידני, אוסטרליה:
Java
Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent);
Kotlin
val gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia") val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) mapIntent.setPackage("com.google.android.apps.maps") startActivity(mapIntent)
אם אתם מעדיפים לא לשלם על כבישי אגרה או לא לנסוע במעבורת, תוכלו לבקש מסלול שינסה להימנע מהם.
Java
Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&avoid=tf"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent);
Kotlin
val gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&avoid=tf") val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) mapIntent.setPackage("com.google.android.apps.maps") startActivity(mapIntent)
אם אתם מעדיפים קצת פעילות גופנית, תוכלו לבקש מסלול רכיבה על אופניים במקום זאת.
Java
Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&mode=b"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent);
Kotlin
val gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&mode=b") val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) mapIntent.setPackage("com.google.android.apps.maps") startActivity(mapIntent)
אם אתם מעדיפים לנסוע על כלי רכב דו-גלגלי ממונע, תוכלו לבקש שהמסלול יכלול דרכים צרות ושבילים שלא זמינים לכלי רכב. הפונקציה intent
שבהמשך מחזירה מסלול בהודו.
Java
Uri gmmIntentUri = Uri.parse("google.navigation:q=Connaught+Place,+New+Delhi,Delhi&mode=l"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent);
Kotlin
val gmmIntentUri = Uri.parse("google.navigation:q=Connaught+Place,+New+Delhi,Delhi&mode=l") val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) mapIntent.setPackage("com.google.android.apps.maps") startActivity(mapIntent)
הצגת פנורמה ב-Street View
משתמשים בכוונה google.streetview
כדי להפעיל את Google Street View. ב-Google Street View מוצגות תצוגות פנורמיות ממיקומים ייעודיים באזור הכיסוי.
אפשר גם לראות תמונות Photosphere שנוספו על ידי משתמשים ואוספים מיוחדים של Street View.
google.streetview:cbll=latitude,longitude&cbp=0,bearing,0,zoom,tilt google.streetview:panoid=id&cbp=0,bearing,0,zoom,tilt
פרמטרים
כל מזהי ה-URI מסוג google.streetview
חייבים לכלול פרמטר cbll
או פרמטר panoid
.
cbll
מקבלת קו רוחב וקו אורך כערכים מופרדים בפסיקים (46.414382,10.013988
). האפליקציה תציג את התמונה הפנורמית שצולמה קרוב ככל האפשר למיקום הזה. התמונות ב-Street View מתעדכנות מדי פעם, ויכול להיות שהתמונות צולמו מזוויות שונות במקצת בכל פעם. לכן, יכול להיות שהמיקום שלכם יוצג בתמונה פנורמית אחרת כשהתמונות יתעדכנו.panoid
הוא מזהה פנורמה ספציפי. מערכת מפות Google תשתמש במזהה התצוגה הפנורמית אם יצוינו גםpanoid
וגםcbll
. מזהי התמונות הפנורמיות זמינים לאפליקציות ל-Android דרך האובייקטStreetViewPanoramaLocation
.cbp
הוא פרמטר אופציונלי שמתאים את הכיוון הראשוני של המצלמה. הפרמטרcbp
מקבל 5 ערכים מופרדים בפסיקים, שכולם אופציונליים. הערכים המשמעותיים ביותר הם השני, הרביעי והחמישי, שמגדירים את הכיוון, הזום וההטיה, בהתאמה. אין תמיכה בערכי השדה הראשון והשלישי, וצריך להגדיר אותם כ-0
.bearing
: מציין את כיוון המצפן של המצלמה במעלות בכיוון השעון ממזרח. הצפון האמיתי הוא 0, מזרח הוא 90, דרום הוא 180 ומערב הוא 270. ערכים שמועברים ל-bearing יעברו עיגול, כלומר הערכים 0°, 360° ו-720° יפנו באותו כיוון. כיוון המצפן מוגדר כערך השני מתוך חמישה ערכים מופרדים בפסיקים.zoom
: הגדרת רמת הזום של המצלמה. מרחק התצוגה שמוגדר כברירת מחדל הוא 0. זום של 1 יגדיל את ההגדלה פי שניים. הזום מוגבל בין 0 לבין רמת הזום המקסימלית של התמונה הפנורמית הנוכחית. המשמעות היא שכל ערך שיהיה מחוץ לטווח הזה יוגדר לערך הקיצוני הקרוב ביותר שנמצא בטווח. לדוגמה, הערך -1 יוגדר כ-0. המרחק מהתצוגה הוא הערך הרביעי מתוך חמישה ערכים מופרדים בפסיקים.tilt
: מציין את הזווית של המצלמה, למעלה או למטה. הטווח הוא בין -90 ל-90, כאשר 90 מייצג מבט ישר למטה, 0 מייצג מבט אופקי ו-90 מייצג מבט ישר למעלה.
דוגמאות
ריכזנו כאן כמה דוגמאות לשימוש בכוונה ל-Street View.
Java
// Displays an image of the Swiss Alps Uri gmmIntentUri = Uri.parse("google.streetview:cbll=46.414382,10.013988"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent); // Uses a PanoID to show an image from Maroubra beach in Sydney, Australia Uri gmmIntentUri = Uri.parse("google.streetview:panoid=Iaa2JyfIggYAAAQfCZU9KQ"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent); // Opens Street View between two Pyramids in Giza. The values passed to the // cbp parameter will angle the camera slightly up, and towards the east. Uri gmmIntentUri = Uri.parse("google.streetview:cbll=29.9774614,31.1329645&cbp=0,30,0,0,-15"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent);
Kotlin
// Displays an image of the Swiss Alps val gmmIntentUri = Uri.parse("google.streetview:cbll=46.414382,10.013988") val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) mapIntent.setPackage("com.google.android.apps.maps") startActivity(mapIntent) // Uses a PanoID to show an image from Maroubra beach in Sydney, Australia val gmmIntentUri = Uri.parse("google.streetview:panoid=Iaa2JyfIggYAAAQfCZU9KQ") val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) mapIntent.setPackage("com.google.android.apps.maps") startActivity(mapIntent) // Opens Street View between two Pyramids in Giza. The values passed to the // cbp parameter will angle the camera slightly up, and towards the east. val gmmIntentUri = Uri.parse("google.streetview:cbll=29.9774614,31.1329645&cbp=0,30,0,0,-15") val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) mapIntent.setPackage("com.google.android.apps.maps") startActivity(mapIntent)