上文中實現了在本地導入百度地圖導航Demo,那麼在此基礎上如何實現導航的語音播報呢?php
1、爲該應用申請語音播報(也叫註冊)java
http://developer.baidu.com/map/index.php?title=android-navsdk/guide/voicenode
SDK內置百度TTS語音播報功能,須要對應用進行受權驗證纔可以使用,所以須要主動註冊應用相關信息。android
第一步:若是不是LBS開放平臺的註冊開發者,首先須要登陸LBS開放平臺進行應用註冊,在工程配置的AndroidManifest中有描述。已經完成註冊的開發者請直接進入下一步。【上篇文章中已經完成】web
第二步:而後須要在導航TTS平臺中進行註冊申請。 注意此處的應用簽名爲MD5,AK爲在LBS開發平臺申請到的AK。MD5簽名僅包含字母,不包含分號,獲取方法以下:【此方法適用於簽名後的apk,若是隻是調試用,則直接使用eclipse——Preferences——Android——Build中的MD5簽名信息】app
PS:爲了不註冊時弄錯簽名,建議直接用打包出來的apk查看簽名,具體以下:
1) 將apk修改後綴爲 .rar文件後解壓; 2) 進入解壓後的META-INF目錄,該目錄下會存在文件CERT.RSA 3) 在該目錄下打開cmd,輸入命令 :keytool -printcert -file CERT.RSA 這裏將會顯示出MD5和SHA1簽名。
注意:eclipse
一、此處的MD5簽名應該和在LBS開放平臺註冊的應用使用的SHA1是一對。【暫未驗證過簽名後的apk是否能夠正常運行,若是不能夠正常運行的話,就須要根據簽名後的SHA1註冊一個新的應用(LBS和TTS平臺)】ide
【1.一、第一步的時候,在LBS開放平臺上註冊應用的時候,若是使用的是Eclipse——Preferences——Android——Build中的SHA1信息,那麼表明這個應用的調試版本;若是是經過上面命令行的方式查找到的apk中的SHA1信息,則表明這個應用的簽名版本。(使用的SHA1不一樣,則生成的AK不一樣!)ui
1.二、第二步的時候,在導航TTS平臺上註冊應用的時候,須要輸入MD5和AK信息,而AK信息是和SHA1關聯的,因此就須要保證MD5和SHA1關聯。因此就須要注意MD5的獲取了。this
1.三、上一篇中我使用的eclipse中查看的SHA1簽名,因此此處我使用的也是eclipse種的MD5信息。
】
二、註冊TTS白名單應用是輸入的MD5是去除掉冒號(:)的內容。
2、在本地的百度地圖導航Demo中修改成模擬導航
修改BaiduNaviManager.getInstance().launchNavigator中的true爲false。
/*發起算路操做並在算路成功後經過回調監聽器進入導航過程. *參數: *activity - 建議是應用的主Activity *nodes - 傳入的算路節點,順序是起點、途經點、終點,其中途經點最多三個,參考 BNRoutePlanNode *preference - 算路偏好,參考RoutePlanPreference定義 [推薦:1,高速優先(用時最少):2,少走高速(路徑最短):4,少收費:8,躲避擁堵:16] *isGPSNav - true表示真實GPS導航,false表示模擬導航 *listener - 開始導航回調監聽器,在該監聽器裏通常是進入導航過程頁面 * */ BaiduNaviManager.getInstance().launchNavigator(this, list, 1, false, new DemoRoutePlanListener(sNode));