過去很長的一段時間裡面,我一直堅持使用utilcode這個庫,裡面繼承了非常多的開發中常用的方法,省去了自己自行從別的地方撈取以前的**。
//utils
implementation 'com.blankj:utilcode:1.24.2'
動態許可權我用的也是其中的方法,
permissionutils.permission(permissionconstants.microphone).callback(new permissionutils.******callback()
@override
public void ondenied()
}).request();
蠻簡便的寫法,但是在我測試的時候出現了問題。以前都能使用的**莫名其妙就出現了問題,排查了很久之後找到了原因。測試機被人換了,換成了vivo,像是國內這些深度定製的系統有時候真的讓人非常頭疼,不能說故作聰明,但是真的造成了很大的困擾,具體原因是什麼呢?正常手機的系統在我們申請許可權時候會彈出dialog讓使用者選擇,但是這個vivo系統沒有,而是一段時間後才彈出來,這就非常難受了,因為沒有彈窗並直接走ongranted()導致直接執行業務**,但是業務**涉及到一些時效性比較高的操作,矛盾就出來了,氣的想打人。。。
後來發現,vivo系統只有在ongranted()方法中立即使用到相關許可權,才能立即彈出,換句話說就是只有在真正使用的時候才彈出,那我只好在業務**之前加入這些了,
mediarecorder mrecorder = new mediarecorder();
mrecorder.setaudiosource(mediarecorder.audiosource.mic);
mrecorder.setoutputformat(mediarecorder.outputformat.three_gpp);
mrecorder.setaudioencoder(mediarecorder.audioencoder.amr_nb);
mrecorder.release();
大概就是這麼乙個思路,如果有更好的方法請告之,感激不盡。 記錄乙個volatile的問題
遇到乙個關於volatile的問題,目前還未想到原因,先記錄下來。關於volatile的含義及功能這裡不多解釋,直接上 public class volatiletestflag system.out.println a執行緒等待結束。thread bthread newthread new run...
記錄乙個MySQL的問題
昨天做asp.net mvc程式,用mysql.data.entity.ef6做資料連線。程式都是正常的,但就是提交資料的時候總是提示 specified key was too long max key length is 767 bytes異常。搞了好久也不知道啥原因,網上查的方法也通通不好使。...
記錄乙個未知的問題
visual studio一啟用應用程式就提示 操作無法完成,因為該檔案已在xx.exe中開啟 但是我啟動的就是xx.exe啊 然後我盃具的發現debug目錄下所有的dll都被刪除掉了 這個程式依賴很多dll,只能乙個乙個重新生成,又杯具的發現生成完成再啟動還是會遇到上面的問題,重啟vs也還是不行,...