咱們談談技術,固然,主要也是給本身作的應用打打廣告,謝謝你們支持,下載用用,提提意見。先上個二維碼,感興趣的如今就能夠去看看:安全
一個月以前,朋友給我說了一個頗有意思的需求:
在騎單車的時候(開車同理,反正就是手沒空的場景),但願可以來了微信消息可以語音朗讀出來(若是是語音就自動播放),而後啊,這時候若是帶了耳機,可以用耳機的按鍵來發送微信語音消息。
這個聽起來好像還有點意思,從技術的角度來講應該很好實現,哈哈,立刻搜一搜有沒有這方面的應用,結果固然是沒有,否則也沒有這篇文章了微信
這個應用作出來,主要就兩個功能,一個詞形容:能聽會說。首先來看看聽,微信用耳機來發送語音,其實啊,這個功能微信團隊也想到了,而後在iOS的微信是能夠開啓這個功能的:網絡
而後我試了一下,iOS 11.2.5 微信6.6.3開啓失敗,獲得的回覆是你的微信版本不支持微信耳機功能。
固然,iOS不是咱們如今討論的主要內容,咱們來看看Android,很遺憾,微信官方並無這個功能,其實這個實現的難度主要仍是在硬件,蘋果的耳機是能夠按下按鍵的同時接收麥克風語音的,可是大部分Android的耳機並不能夠,一按下按鍵就沒辦法使用麥克風。何況要從外部控制微信的語音按鈕也是個問題,因此聽 這個功能暫時就擱置了,仍是先從簡單的來,後面再慢慢研究這個。正在看文章的你有沒有什麼好辦法呢?spa
說消息這個主要就是消息的解析,最簡單的一種方案是讀取通知欄,這個方案不只是微信,全部具備通知權限的應用消息均可以讀出來,怎麼來實現呢,Android從4.4API19以後提供了一個類NotificationListenerService,在用戶手動開啓了通知欄讀取權限以後,能夠在這個服務類中獲取全部的通知欄消息,而且還能夠控制,誇張一點說,只要用戶贊成了以後,手機上的全部通知消息你想怎麼處理就怎麼處理。固然,這裏面有好多坑,也有一些致命的問題。你能夠下載應用試試,可能會遇到,我再告訴你。插件
通知欄讀取很方便,可是你會說,我開了免打擾怎麼辦,或者說我隱藏了消息具體內容怎麼辦,這就是個問題了,並且微信還有語音消息,最好可以自動播放......3d
這個怎麼來解決呢,想要實現這個,在手機不root的狀況只有一個辦法,那就是使用輔助功能(有的手機叫無障礙),這個功能主要是用來獲取當前界面的全部控件和內容,還能夠模擬點擊,如今市面上大部分搶紅包插件也是用的這種方法。這個類叫AccessibilityService,在用戶贊成了權限以後,就能夠獲取當前打開界面的全部信息(注意是全部界面,不限於微信)。blog
上面說到能夠讀取當前界面的全部消息是應用不作特殊處理的狀況下,那微信的消息能夠直接讀取麼?很遺憾,答案是不能,不得不說,微信安全這方面確實作了不少考慮,怎麼實現的我仍是很好奇,有沒人知道呢?我還試了QQ,QQ是能夠直接讀聊天內容的,也不知道QQ的需求大不大?若是需求大的話後面加進去。ip
那要讀到微信消息怎麼辦呢,在苦思冥想,撓破頭皮以後只想到一個笨辦法,那就是長按消息以後複製,再讀取剪貼板的內容。既然叫笨辦法,那確定是有不少缺陷的,最大的缺陷就是這個不太穩定,容易複製失敗,這時候每每須要手動去長按複製一下或者點擊一下消息再開啓纔會生效。開發
上面說的這些有沒有嚇到不是開發者的讀者呢?若是是我我也會以爲這有點可怕,能夠讀到你當前打開的全部內容,想一想都嚇人......可是你放心,上面提到的兩個功能,一個是通知欄權限,一個是輔助功能權限,這兩個功能必須手動容許,並且在應用被殺死以後大部分系統會自動關閉,你只須要謹慎的開啓就好,好比方便聊這個應用,徹底不必擔憂這個問題,理論上它關閉網絡也能用的,聯網只是語音sdk須要聯網,應用自己是不會存儲任何內容的,您徹底放心下載使用。get