2016-10-18 2 views
0

Android 4.4.x(KitKat)のsdcardでファイルを削除しようとしています。私が理解しているように、これはもはやサポートされていないので、単にFile.delete(...)を呼び出すことはできません。ストレージアクセスフレームワークを使用する必要があります。Android 4.4.xでsdcardのファイルを削除するKitKat

https://developer.android.com/guide/topics/providers/document-provider.html

私は、ファイルピッカーを開き、ストレージアクセスのフレームワークを使用していくつかのサンプルコードを持っています。この部分はうまくいくようです。

final Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); 
    intent.setType("*/*"); 
    intent.addCategory(Intent.CATEGORY_OPENABLE); 
    startActivityForResult(intent, OPEN_DOCUMENT_REQUEST_CODE); 

記載されているようしかし、ピッカー負荷とするとき、私はファイルを見つけ、それをクリックしたら、私は戻って、「onActivityResult」のコールを得ることはありません。代わりに、単に閉じ、何も起こりません:(

をピッカーが不足している何かがありますか?

私はアンドロイドのキットカットのSDカード上のファイルを削除しようとしています。ありがとう!

+1

このコードはどこにありますか?他にどこですか?)? 'onActivityResult()'はどこに実装されていますか(同じアクティビティですか?同じフラグメントですか? 'OPEN_DOCUMENT_REQUEST_CODE'の値は何ですか? FWIW、[このサンプルアプリケーション](https://github.com/commonsguy/cw-omnibus/tree/master/Documents/Consumer)は、 'ACTION_OPEN_DOCUMENT'の使い方を示しています。 – CommonsWare

+0

これはAppCompatActivityにあります。呼び出し「startActivityWithResult」と「onActivityWithResult」は、同じアクティビティに存在します。リクエストコードは123に設定されています。リンクありがとうございます。私はそれを試してみましょう。 – Jon

+1

このメソッドはonActivityWesResultではなくonActivityResult()であることに注意してください。そうでなければ、あなたが描写しているものはうまくいくはずですストレージアクセスフレームワークのUIは、コンテンツを選択した後で終了するはずですが、 'onActivityResult()'メソッドを呼び出す必要があります。 – CommonsWare

答えて

0

Alrighty、私は解決策を見つけました。何らかの理由で、私はアンドロイドのサポートライブラリを23.0.1 - > 24.2.0に更新しました。サポートライブラリのリリースノートとAndroidソースのクローズドな問題を調べてみましたが、私の修正に関連するものは見つかりませんでした。私はちょうど感謝する必要があると思います:)

+0

私が見つけられなかったことは、ユーザーが選択するのではなく、正確なファイルをユーザーに提示することができます。私はどのファイルを削除したいのか知っています。必要なのは削除する権限です。私はユーザーがそれを見つけるためにストレージをナビゲートする必要はありません。 – Jon

関連する問題