Android 通過Intent調(diào)取導(dǎo)航

前言

公司以前有個需求凹髓,需要使用導(dǎo)航吟策,但是工期很短相赁,那么怎么解決呢?我們想到了URL Scheme來實現(xiàn)

URL Scheme是什么

android中的scheme是一種頁面內(nèi)跳轉(zhuǎn)協(xié)議,是一種非常好的實現(xiàn)機制,通過定義自己的scheme協(xié)議赠幕,可以非常方便跳轉(zhuǎn)app中的各個頁面俄精;通過scheme協(xié)議,服務(wù)器可以定制化告訴App跳轉(zhuǎn)那個頁面榕堰,可以通過通知欄消息定制化跳轉(zhuǎn)頁面竖慧,可以通過H5頁面跳轉(zhuǎn)頁面等。

Map APP相關(guān)

目前市場上占有率比較高的地圖主要有:百度逆屡,高德圾旨,谷歌(CN大陸暫時不能使用),騰訊

四大公司相關(guān)的API平臺問題

百度地圖:http://lbsyun.baidu.com/index.php?title=uri/api/android

高德地圖:http://lbs.amap.com/api/uri-api/android-uri-explain/

騰訊地圖:http://lbs.qq.com/uri_v1/index.html

谷歌地圖:https://developers.google.com/maps/documentation/android-api/intents

代碼示例

檢查是否安裝

* 檢查手機上是否安裝了指定的軟件

* @param context

* @param packageName:應(yīng)用包名

* @return

*/

public static boolean isAvilible(Context context, String packageName){

//獲取packagemanager

final PackageManager packageManager = context.getPackageManager();

//獲取所有已安裝程序的包信息

List packageInfos = packageManager.getInstalledPackages(0);

//用于存儲所有已安裝程序的包名

List packageNames = new ArrayList();

//從pinfo中將包名字逐一取出魏蔗,壓入pName list中

if(packageInfos != null){

for(int i = 0; i < packageInfos.size(); i++){

String packName = packageInfos.get(i).packageName;

packageNames.add(packName);

}}

//判斷packageNames中是否有目標程序的包名砍的,有TRUE,沒有FALSE

return packageNames.contains(packageName);

}

百度地圖

if(isAvilible(context,"com.baidu.BaiduMap")){//傳入指定應(yīng)用包名

try {

//? intent = Intent.getIntent("intent://map/direction?origin=latlng:34.264642646862,108.95108518068|name:我家&destination=大雁塔&mode=driving?ion=西安&src=yourCompanyName|yourAppName#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");

intent = Intent.getIntent("intent://map/direction?" +

//"origin=latlng:"+"34.264642646862,108.95108518068&" +? //起點? 此處不傳值默認選擇當(dāng)前位置

"destination=latlng:"+location[0]+","+location[1]+"|name:我的目的地"+? ? ? ? //終點

"&mode=driving&" +? ? ? ? ? //導(dǎo)航路線方式

"region=北京" +? ? ? ? ? //

"&src=慧醫(yī)#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");

context.startActivity(intent); //啟動調(diào)用

} catch (URISyntaxException e) {

Log.e("intent", e.getMessage());

}

}else{

//未安裝

//market為路徑莺治,id為包名

//顯示手機上所有的market商店

Toast.makeText(context, "您尚未安裝百度地圖", Toast.LENGTH_LONG).show();

Uri uri = Uri.parse("market://details?id=com.baidu.BaiduMap");

intent = new Intent(Intent.ACTION_VIEW, uri);

context.startActivity(intent);

}

高德地圖

if (isAvilible(context, "com.autonavi.minimap")) {

try{

intent = Intent.getIntent("androidamap://navi?sourceApplication=慧醫(yī)&poiname=我的目的地&lat="+location[0]+"&lon="+location[1]+"&dev=0");

context.startActivity(intent);

} catch (URISyntaxException e)

{e.printStackTrace(); }

}else{

Toast.makeText(context, "您尚未安裝高德地圖", Toast.LENGTH_LONG).show();

Uri uri = Uri.parse("market://details?id=com.autonavi.minimap");

intent = new Intent(Intent.ACTION_VIEW, uri);

context.startActivity(intent);

}

谷歌地圖:

if (isAvilible(context,"com.google.android.apps.maps")) {

Uri gmmIntentUri = Uri.parse("google.navigation:q="+location[0]+","+location[1] +", + Sydney +Australia");

Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);

mapIntent.setPackage("com.google.android.apps.maps");

context.startActivity(mapIntent);

}else {

Toast.makeText(context, "您尚未安裝谷歌地圖", Toast.LENGTH_LONG).show();

Uri uri = Uri.parse("market://details?id=com.google.android.apps.maps");

intent = new Intent(Intent.ACTION_VIEW, uri);

context.startActivity(intent);? }

騰訊地圖

騰訊暫時不提供相關(guān)接口

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末廓鞠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子谣旁,更是在濱河造成了極大的恐慌床佳,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,222評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件榄审,死亡現(xiàn)場離奇詭異砌们,居然都是意外死亡,警方通過查閱死者的電腦和手機搁进,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評論 3 385
  • 文/潘曉璐 我一進店門浪感,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人饼问,你說我怎么就攤上這事篮撑。” “怎么了匆瓜?”我有些...
    開封第一講書人閱讀 157,720評論 0 348
  • 文/不壞的土叔 我叫張陵赢笨,是天一觀的道長。 經(jīng)常有香客問我驮吱,道長茧妒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,568評論 1 284
  • 正文 為了忘掉前任左冬,我火速辦了婚禮桐筏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拇砰。我一直安慰自己梅忌,他們只是感情好狰腌,可當(dāng)我...
    茶點故事閱讀 65,696評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著牧氮,像睡著了一般琼腔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上踱葛,一...
    開封第一講書人閱讀 49,879評論 1 290
  • 那天丹莲,我揣著相機與錄音,去河邊找鬼尸诽。 笑死甥材,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的性含。 我是一名探鬼主播洲赵,決...
    沈念sama閱讀 39,028評論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼商蕴!你這毒婦竟也來了板鬓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,773評論 0 268
  • 序言:老撾萬榮一對情侶失蹤究恤,失蹤者是張志新(化名)和其女友劉穎俭令,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體部宿,經(jīng)...
    沈念sama閱讀 44,220評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡抄腔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,550評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了理张。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赫蛇。...
    茶點故事閱讀 38,697評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖雾叭,靈堂內(nèi)的尸體忽然破棺而出悟耘,到底是詐尸還是另有隱情,我是刑警寧澤织狐,帶...
    沈念sama閱讀 34,360評論 4 332
  • 正文 年R本政府宣布暂幼,位于F島的核電站,受9級特大地震影響移迫,放射性物質(zhì)發(fā)生泄漏旺嬉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,002評論 3 315
  • 文/蒙蒙 一厨埋、第九天 我趴在偏房一處隱蔽的房頂上張望邪媳。 院中可真熱鬧,春花似錦、人聲如沸雨效。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽徽龟。三九已至叮姑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間戏溺,已是汗流浹背渣蜗。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評論 1 266
  • 我被黑心中介騙來泰國打工屠尊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人耕拷。 一個月前我還...
    沈念sama閱讀 46,433評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像赃绊,于是被迫代替她去往敵國和親忠售。 傳聞我的和親對象是個殘疾皇子传惠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,587評論 2 350

推薦閱讀更多精彩內(nèi)容

  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,373評論 0 17
  • Intent應(yīng)該算是Android中特有的東西稻扬。你可以在Intent中指定程序要執(zhí)行的動作(比如:view,edi...
    Ten_Minutes閱讀 3,547評論 0 6
  • 這個世界 令人感到失望 不是因為它的險惡 而是因為它的平庸 這段生命 ...
    海月先生閱讀 609評論 0 12
  • 此刻卦方,很想找個地圖看看, 從旅行到漂泊泰佳, 我走過了多少個城市盼砍; 此刻,很想回頭看看逝她, 從校園到社會衬廷, 我收獲了什么...
    等風(fēng)來的野丫頭閱讀 150評論 0 0
  • 剛開始寫公眾號的想法很功利,是因為看到好多人通過寫作掙到了錢汽绢。于是自己也跟風(fēng)吗跋。 每一個人都有從眾的心理。這就好比你...
    易小六閱讀 450評論 5 4