Android5.0+刪除Sdcard文件

在Android5.0往后的平臺(tái)上,你想通過單純的調(diào)用File.delete()或著ContentResolver.delete()來刪除Sdcard上的文件會(huì)刪除失敗。前者提示沒有權(quán)限,后者僅僅刪除數(shù)據(jù)庫文件對(duì)應(yīng)的信息,但物理文件還存在,手機(jī)重啟后MediaScanner會(huì)重新將其信息掃描進(jìn)數(shù)據(jù)庫。

為湘潭縣等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及湘潭縣網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站制作、成都做網(wǎng)站、湘潭縣網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

那既然如此,有沒有什么辦法可以刪除Sdcard上的文件呢?

root?

將apk放在system下?

這些都太小題大做了,下面介紹一個(gè)在非root情況下使用平臺(tái)正規(guī)api刪除sdcard文件的方法。

Documents

在Android平臺(tái)中,提供了一個(gè)名為DocumenstProvider的內(nèi)容提供者,當(dāng)然要使用它就必需繼承它。它的作用就是幫助開發(fā)者構(gòu)件一棵Documents樹,樹的根節(jié)點(diǎn)及文件目錄的根結(jié)點(diǎn)。底下的文件或文件夾就是這棵樹的枝葉。說了這么多,我們來介紹一下今天的主角:ExternalStorageProvider,他是繼承自DocumenstProvider的一個(gè)平臺(tái)類,通過它我們就能間接的刪除Sdcard上的文件了。

獲取讀寫權(quán)限

final Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);startActivityForResult(intent, 42);

首先通過上面的代碼打開系統(tǒng)的DocumentsUI界面,并選擇Sdcard的更目錄,并點(diǎn)擊確認(rèn),如下圖:
Android 5.0+刪除Sdcard文件

Android 5.0+刪除Sdcard文件

接著在onActivityResult中獲取sdcard在ExternalStorageProvider中對(duì)應(yīng)的uri

 Uri data = intent.getData();//data:content://com.android.externalstorage.documents/tree/0C3D-8650%3A

其中0C3D-8650%3A為sdcard的唯一標(biāo)示符,也可看作ID,我們這里記作SDCARD_UUID,并且把上面的Uri data記作SDCARD_URI

接下來獲取讀寫權(quán)限:

getContentResolver().takePersistableUriPermission(data,Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

到這里我們已經(jīng)拿到刪除Sdcard文件的權(quán)限了,接下來就是怎么去刪了。

刪除文件

//SDCARD_URI上面獲得的//SDCARD_UUID也是上面獲得的//filePath為文件在Sdcard下的相對(duì)路徑Uri uri = DocumentsContract.buildDocumentUriUsingTree(SDCARD_URI, SDCARD_UUID + ":" + filePath);
DocumentsContract.deleteDocument(mContentResolver, uri);

OK,Sdcard的文件工程刪除。

標(biāo)題名稱:Android5.0+刪除Sdcard文件
分享地址:http://bm7419.com/article32/iioipc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化服務(wù)器托管、網(wǎng)站維護(hù)、電子商務(wù)、用戶體驗(yàn)App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化