實現百度地圖導航Demo的語音播報功能


上文中實現了在本地導入百度地圖導航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));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM