打開手機中的高德地圖點擊“我的”然后找到“更多工具”選項點擊“更多工具”就會出現(xiàn)如下頁面最后,找到汽車導(dǎo)航屏中的地圖二維碼,用手機連接界面中的掃一掃就可以完成連接
創(chuàng)新互聯(lián)秉承實現(xiàn)全網(wǎng)價值營銷的理念,以專業(yè)定制企業(yè)官網(wǎng),網(wǎng)站制作、成都做網(wǎng)站,小程序定制開發(fā),網(wǎng)頁設(shè)計制作,成都做手機網(wǎng)站,成都全網(wǎng)營銷推廣幫助傳統(tǒng)企業(yè)實現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對客戶都以感恩的心態(tài)奉獻自己的專業(yè)和所長。
想要把手機導(dǎo)航連接到汽車顯示屏上,首先要確認(rèn)車載多媒體系統(tǒng)是否支持手機互聯(lián)的功能。如果有的話直接通過usb接口使手機與車載媒體系統(tǒng)互聯(lián)實現(xiàn)映射的功能。如果車載系統(tǒng)不支持互聯(lián)的功能,可以通過藍(lán)牙連接手機播放手機中的音樂,手機導(dǎo)航語音功能,以及電話接聽功能。
CarPlay系統(tǒng)是蘋果公司自主研發(fā)的一種車載系統(tǒng),用來幫助iPhone和車載屏幕實現(xiàn)互聯(lián)目前國內(nèi)很多車輛都已CarPlay系統(tǒng),用戶則可以通過這一系統(tǒng)將自己的iPhone設(shè)備與車載屏幕連接,注意僅限iPhon,不支持其他安卓手機
試下下面的代碼:
package?com.liufeng.baidumap;
import?android.graphics.drawable.Drawable;
import?android.os.Bundle;
import?com.baidu.mapapi.BMapManager;
import?com.baidu.mapapi.GeoPoint;
import?com.baidu.mapapi.MapActivity;
import?com.baidu.mapapi.MapController;
import?com.baidu.mapapi.MapView;
public?class?MainActivity?extends?MapActivity?{
private?BMapManager?mapManager;
private?MapView?mapView;
private?MapController?mapController;
@Override
public?void?onCreate(Bundle?savedInstanceState)?{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//?初始化MapActivity
mapManager?=?new?BMapManager(getApplication());
//?init方法的第一個參數(shù)需填入申請的API?Key
mapManager.init("285B415EBAB2A92293E85502150ADA7F03C777C4",?null);
super.initMapActivity(mapManager);
mapView?=?(MapView)?findViewById(R.id.map_View);
//?設(shè)置地圖模式為交通地圖
mapView.setTraffic(true);
//?設(shè)置啟用內(nèi)置的縮放控件
mapView.setBuiltInZoomControls(true);
//?用給定的經(jīng)緯度構(gòu)造一個GeoPoint(緯度,經(jīng)度)
GeoPoint?point?=?new?GeoPoint((int)?(47.118440?*?1E6),?(int)?(87.493147?*?1E6));
//?創(chuàng)建標(biāo)記maker
Drawable?marker?=?this.getResources().getDrawable(R.drawable.iconmarka);
//?為maker定義位置和邊界
marker.setBounds(0,?0,?marker.getIntrinsicWidth(),?marker.getIntrinsicHeight());
//?取得地圖控制器對象,用于控制MapView
mapController?=?mapView.getController();
//?設(shè)置地圖的中心
mapController.setCenter(point);
//?設(shè)置地圖默認(rèn)的縮放級別
mapController.setZoom(12);
}
@Override
protected?boolean?isRouteDisplayed()?{
return?false;
}
@Override
protected?void?onDestroy()?{
if?(mapManager?!=?null)?{
mapManager.destroy();
mapManager?=?null;
}
super.onDestroy();
}
@Override
protected?void?onPause()?{
if?(mapManager?!=?null)?{
mapManager.stop();
}
super.onPause();
}
@Override
protected?void?onResume()?{
if?(mapManager?!=?null)?{
mapManager.start();
}
super.onResume();
}
}
1、設(shè)置AndroidManfest.xml權(quán)限ViewCode2、配置jar包3、初始化設(shè)置BMapManagerViewCodemapManager=newBMapManager(this);mapManager.init("EDB67AD764D300895C95ABA02A4DDC58D5485CCD",newMyMKGeneralListener());//設(shè)置通知間隔:iMaxSecond-最大通知間隔,單位:秒;iMinSecond-最小通知間隔,單位:秒mapManager.getLocationManager().setNotifyInternal(20,5);4、獲取手機經(jīng)緯度,并顯示地址信息ViewCodemapManager.getLocationManager().requestLocationUpdates(newMyLocationListener());mapManager.start();在LocationListener中獲取經(jīng)緯度ViewCodeclassMyLocationListenerimplementsLocationListener{@OverridepublicvoidonLocationChanged(Locationarg0){intjindu=(int)(arg0.getLatitude()*1000000);intweidu=(int)(arg0.getLongitude()*1000000);tv1.setText("經(jīng)度:"+jindu+",緯度:"+weidu);MKSearchsearch=newMKSearch();search.init(mapManager,newMyMKSearchListener());search.reverseGeocode(newGeoPoint(jindu,weidu));}}在MKSearch接口中進行地址轉(zhuǎn)化
通過一個簡單的示例一步步介紹如何在Android應(yīng)用中使用百度地圖api。
1)下載百度地圖移動版API(Android)開發(fā)包
要在Android應(yīng)用中使用百度地圖API,就需要在工程中引用百度地圖API開發(fā)包,這個開發(fā)包包含兩個文件:baidumapapi.jar和libBMapApiEngine.so。下載地址:
2)申請API Key
和使用Google map api一樣,在使用百度地圖API之前也需要獲取相應(yīng)的API Key。百度地圖API Key與你的百度賬戶相關(guān)聯(lián),因此您必須先有百度帳戶,才能獲得API Key;并且,該Key與您引用API的程序名稱有關(guān)。
百度API Key的申請要比Google的簡單多了,其實只要你有百度帳號,應(yīng)該不超過30秒就能完成API Key的申請。申請地址:
3)創(chuàng)建一個Android工程
這里需要強調(diào)一點:百度地圖移動版api支持Android 1.5及以上系統(tǒng),因此我們創(chuàng)建的工程應(yīng)基于Android SDK 1.5及以上。
工程創(chuàng)建完成后,將baidumapapi.jar和libBMapApiEngine.so分別拷貝到工程的根目錄及l(fā)ibs/armeabi目錄下,并在工程屬性-Java Build Path-Libraries中選擇“Add JARs”,選定baidumapapi.jar,這樣就可以在應(yīng)用中使用百度地圖API了。
4)在布局文件中添加地圖控件(res/layout/main.xml)
[xhtml] view plaincopy
?xml version="1.0" encoding="utf-8"?
LinearLayout xmlns:android=""
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
com.baidu.mapapi.MapView android:id="@+id/map_View"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
/
/LinearLayout
5)創(chuàng)建Activity繼承com.baidu.mapapi.MapActivity
[java] view plaincopy
package com.liufeng.baidumap;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapController;
import com.baidu.mapapi.MapView;
public class MainActivity extends MapActivity {
private BMapManager mapManager;
private MapView mapView;
private MapController mapController;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 初始化MapActivity
mapManager = new BMapManager(getApplication());
// init方法的第一個參數(shù)需填入申請的API Key
mapManager.init("285B415EBAB2A92293E85502150ADA7F03C777C4", null);
super.initMapActivity(mapManager);
mapView = (MapView) findViewById(R.id.map_View);
// 設(shè)置地圖模式為交通地圖
mapView.setTraffic(true);
// 設(shè)置啟用內(nèi)置的縮放控件
mapView.setBuiltInZoomControls(true);
// 用給定的經(jīng)緯度構(gòu)造一個GeoPoint(緯度,經(jīng)度)
GeoPoint point = new GeoPoint((int) (47.118440 * 1E6), (int) (87.493147 * 1E6));
// 創(chuàng)建標(biāo)記maker
Drawable marker = this.getResources().getDrawable(R.drawable.iconmarka);
// 為maker定義位置和邊界
marker.setBounds(0, 0, marker.getIntrinsicWidth(), marker.getIntrinsicHeight());
// 取得地圖控制器對象,用于控制MapView
mapController = mapView.getController();
// 設(shè)置地圖的中心
mapController.setCenter(point);
// 設(shè)置地圖默認(rèn)的縮放級別
mapController.setZoom(12);
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
@Override
protected void onDestroy() {
if (mapManager != null) {
mapManager.destroy();
mapManager = null;
}
super.onDestroy();
}
@Override
protected void onPause() {
if (mapManager != null) {
mapManager.stop();
}
super.onPause();
}
@Override
protected void onResume() {
if (mapManager != null) {
mapManager.start();
}
super.onResume();
}
}
6)在AndroidManifest.xml中配置
[xhtml] view plaincopy
?xml version="1.0" encoding="utf-8"?
manifest xmlns:android=""
package="com.liufeng.baidumap"
android:versionCode="1"
android:versionName="1.0"
application android:icon="@drawable/icon" android:label="@string/app_name"
activity android:name=".MainActivity" android:label="@string/app_name"
intent-filter
action android:name="android.intent.action.MAIN" /
category android:name="android.intent.category.LAUNCHER" /
/intent-filter
/activity
/application
uses-sdk android:minSdkVersion="4" /
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /
uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /
uses-permission android:name="android.permission.INTERNET" /
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /
uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /
uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /
uses-permission android:name="android.permission.READ_PHONE_STATE" /
/manifest
說明:上面的應(yīng)用只是簡單的展示了百度地圖(交通地圖),并將一個指定的點(根據(jù)經(jīng)緯度確定)展示在手機屏幕的中心。當(dāng)然,實際項目中涉及的map應(yīng)用不會這么簡單,百度地圖API提供了豐富的功能接口。
【原文地址: 】
按照高德官網(wǎng)的文檔配置地圖加載,在地圖上有高德的logo,但是始終加載不到地圖,那么你可能遇到這個問題了,請看下面解決辦法。
第一步查看:項目的build.gradle中配置的編譯版本、運行版本、是不是高于27的版本。
那么你的的問題肯定是因為高版本不支持http這種不加密的協(xié)議,需要使用https加密。有兩種解決辦法:
在 res 下新增一個 xml 目錄,創(chuàng)建network_security_config文件:
然后在application中引用: