1. 程式人生 > >Android通話錄音之坑

Android通話錄音之坑

本來今天的文章準備給大家提供一篇技術文章,來講講Android自動進行通話錄音。之前做一個APP有使用過該技術,本以為沒有什麼問題了,結果今天跳進了一個坑,既然已入坑,索性描述一下,防止大家再次入坑。

之前關於電話錄音的需求很簡單,來電或者去電時,手機自動錄音。關於Android監聽電話狀態,我這裡有一個Demo,就不再詳細描述了,可以到github去看看,地址是

有兩種方式可以進行電話狀態的監聽,一種是使用Broadcast Receiver,一種使用TelephonyManager設定監聽器,程式碼中兩種方法都有涉及,不過使用一種要註釋掉另一種的程式碼。

解決了電話狀態監聽,那麼就該處理錄音的問題了,坑就在這裡,錄音使用MediaRecorder或者AudioRecorder即可,之前的專案是基於4.2以前的系統,所以執行很好,但是,這次基於5.0以上的系統,問題就來了。錄音時需要設定AudioSource,以前使用MIC和VOICE_CALL作為錄音的聲源都是沒有問題的,但是,由於谷歌考慮隱私問題,現在基本上我們無法獲得對端的聲音!

或許你會懷疑,那為什麼手機自帶的撥號程式可以錄音?的確,查閱資料後瞭解到,如果你的應用作為系統應用,那麼是可以拿到對端的聲音的。那麼你的應用如何可以成為系統應用呢?以前,通過配置manifest檔案可以實現,現在這也是不可行的,你需要將你的APP放在作業系統原始碼中進行編譯才可以!

所以,現在的新版系統,如果你還希望做一個應用去進行通話雙向錄音,看樣是有些難度了,目前沒有發現什麼好辦法。也希望有這方面經驗的朋友可以交流一下。

回想當時做這個功能,雖然公司內部使用,但是感覺涉及隱私,本不想做,後來經過溝通,添加了Toast提示,但是我們依然沒有辦法獲得電話對端的允許,這樣做一直覺得不妥。現在可好,看來是不能用了。程式碼壽命如此之短,可見還是少打擦邊球。

產品不是憑空想象的,受到各個方面的限制,研發成本也是存在的,投入研發成本,換來的收益到底有多少,還是值得思考的。經驗教訓就是,公司以及研發應當有自己的判斷,而不應該只是考慮技術是否可行,更要考慮是否關乎隱私,道德和法律,有一些東西,技術上或許可行,但是,或許過不久,技術的支援就被封殺了,到頭來得不償失。如果我們的產品曾經提供了某項功能,但是之後卻取消了,難免會讓一些使用者離開。如何使用技術是一個值得思考的問題。

最近一段時間中興員工跳樓事件也比較火,暫且不管結果到底如何,只是覺得作為技術人似乎很有力量,但是力量又是那麼的薄弱,技術可能會讓我們無所不能,但是技術人卻應當有所為有所不為。

本週技術實施失敗,也沒有準備什麼話題,想到哪裡寫到哪裡,有時讓自己放鬆一下,感覺也是不錯的XD.