手機插上電腦,看不到新增的檔案的解決方案
把android手機插上電腦,有的時候會看不到你想看到的檔案,例如:new File產生的檔案,某些軟體下載同步的檔案。
這讓人很惱火,在網上搜索了一下,有幾個行之有效的方案:
1,重啟手機----筆者測試通過
2,如果是外接SD卡,在“設定”->"儲存"裡,選擇解除安裝SD卡,然後再掛載----筆者寫這篇文章的時候,還沒有測試,晚上會進行測試並更新測試結果。
3,在“設定”->"儲存"裡,“內部儲存空間”這個欄目裡,有個一個重新整理的按鈕,點選它----筆者測試通過。
4,下載一個軟體SDRescan,在插上電腦之前執行一下----筆者沒有測試,據一些網友反饋是可行的,但是目前尚不支援android4.4。
5,如果你是連線上之後,所有檔案都看不見了,那麼,你需要檢視所有應用,找到“媒體儲存”這個應用(英文大概叫做MediaStorage,沒有嚴格的求證),檢查是否已經啟用。
然後執行方案3。
有了上述的解決辦法,我們來討論下這個問題的來龍去脈:
目前大家插上電腦,通常的連線方式都是MTP。一般在插上電腦的時候,手機的狀態列可以供使用者選擇是以MTP(媒體裝置)方式連線還是以PTP(相機)。
通常在進行檔案操作的時候,大家會使用MTP,而MTP並非傳統的磁碟模式,因為手機儲存的速度沒有那麼快,所以google對MTP建立了一個快取。
每次連線電腦其實都是讀取的快取,如果手機上的檔案有更新卻沒有重新整理快取,就會出問題。
我們目前討論的就是上面這個現象造成的問題。
Google的一些開發者給出的方案是:在建立檔案的時候,新增一行程式碼:
MediaScannerConnection.scanFile(this, new String[] { file.getAbsolutePath() }, null, null);這個方法會重新整理快取。參考:https://code.google.com/p/android/issues/detail?id=38282
但是這麼一來,其實是把問題推給了所有的android的應用了:你們的app程式碼寫的有問題!
所以大家除了抱怨google之外,能做的就是想辦法來重新整理這個快取。思路基本上是:
1,快取是“媒體儲存”這個應用建立的
2,這個應用活著才能正常使用
3,讓他死,再活:a,重啟,行之有效;b,停止掉再啟動這個應用,無效,沒有觸發重新整理;
4,手動刷:解除安裝裝置再重新掛載,對於外接sd卡是有效的,內建的操作簡單不了,有其他限制。
5,重新整理儲存裝置,就是上面提到的方案3.
6,整合刷,做成應用來刷,就是上面提到的方案4;
7,自己來,有些開發者根據問題原理,寫了一個應用,也可以刷,原始碼在:https://github.com/Sarkie/mtpfix
程式碼是有效的,但是設計的不太好,可以進行優化,有精力、有條件的朋友可以優化一下。