上文中實現了在本地導入百度地圖導航Demo,那么在此基礎上如何實現導航的語音播報呢?
一、為該應用申請語音播報(也叫注冊)
http://developer.baidu.com/map/index.php?title=android-navsdk/guide/voice
SDK內置百度TTS語音播報功能,需要對應用進行授權驗證才能夠使用,因此需要主動注冊應用相關信息。
第一步:如果不是LBS開放平台的注冊開發者,首先需要登錄LBS開放平台進行應用注冊,在工程配置的AndroidManifest中有描述。已經完成注冊的開發者請直接進入下一步。【上篇文章中已經完成】
第二步:然后需要在導航TTS平台中進行注冊申請。 注意此處的應用簽名為MD5,AK為在LBS開發平台申請到的AK。MD5簽名僅包含字母,不包含分號,獲取方法如下:【此方法適用於簽名后的apk,如果只是調試用,則直接使用eclipse——Preferences——Android——Build中的MD5簽名信息】
PS:為了避免注冊時弄錯簽名,建議直接用打包出來的apk查看簽名,具體如下:
1) 將apk修改后綴為 .rar文件后解壓; 2) 進入解壓后的META-INF目錄,該目錄下會存在文件CERT.RSA 3) 在該目錄下打開cmd,輸入命令 :keytool -printcert -file CERT.RSA 這里將會顯示出MD5和SHA1簽名。
注意:
1、此處的MD5簽名應該和在LBS開放平台注冊的應用使用的SHA1是一對。【暫未驗證過簽名后的apk是否可以正常運行,如果不可以正常運行的話,就需要根據簽名后的SHA1注冊一個新的應用(LBS和TTS平台)】
【1.1、第一步的時候,在LBS開放平台上注冊應用的時候,如果使用的是Eclipse——Preferences——Android——Build中的SHA1信息,那么代表這個應用的調試版本;如果是通過上面命令行的方式查找到的apk中的SHA1信息,則代表這個應用的簽名版本。(使用的SHA1不同,則生成的AK不同!)
1.2、第二步的時候,在導航TTS平台上注冊應用的時候,需要輸入MD5和AK信息,而AK信息是和SHA1關聯的,所以就需要保證MD5和SHA1關聯。所以就需要注意MD5的獲取了。
1.3、上一篇中我使用的eclipse中查看的SHA1簽名,所以此處我使用的也是eclipse種的MD5信息。
】
2、注冊TTS白名單應用是輸入的MD5是去除掉冒號(:)的內容。



二、在本地的百度地圖導航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));
