最近有個需求,就是在自己的app項目里面直接根據(jù)定位,跳轉(zhuǎn)進入百度或者高德地圖進行導航。
val uri=Uri.parse("geo:24.473306,118.123456"); //打開地圖定位
val it = Intent(Intent.ACTION_VIEW, uri)
val cn = it.resolveActivity(packageManager)
if(cn == null){
Toast.makeText(this@MainActivity,"請先安裝第三方導航軟件",Toast.LENGTH_SHORT).show()
}else{
Log.v("MainActivity",cn.packageName)
startActivity(it)
}
如果手機同時安裝高德和百度地圖,則會兩個都顯示出來讓你選擇。如果只有一個,會直接跳轉(zhuǎn)進入地圖。
這里resolveActivity的方法很重要,是判斷能否找到相應(yīng)的可跳轉(zhuǎn)的軟件,如果手機未安裝然后地圖軟件,resolveActivity的值將是空的,這個時候就可以提示先安裝第三方地圖導航軟件。如果沒有該方法就直接跳轉(zhuǎn),會拋出異常。所以這一步判斷很有必要。