0

ファイル ストレージには、オンラインで見つけたいくつかの例を組み合わせたカスタム ContentProvider を使用しています。クラス自体で定義された 1 つのファイル名 (mImageName) を使用する限り、かなりうまく機能しているように見えますが、クラス自体の外でパラメーターを使用してファイル名を定義できるようにする必要があります。誰かがこれで私を助けることができますか? これが私の ContentProvider クラスのスニペットです:

public class FileStorageContentProvider extends ContentProvider {

static final String AUTHORITY = "content://com.jwburnside.provider";
public static final Uri CONTENT_URI = Uri.parse(AUTHORITY);
private static final HashMap<String, String> MIME_TYPES = new HashMap<String, String>();

private String mImageName = "myImage";

static {
    MIME_TYPES.put(".jpg", "image/jpeg");
    MIME_TYPES.put(".jpeg", "image/jpeg");
}

public FileStorageContentProvider() {}

@Override
public boolean onCreate() {

    try {

        File mFile = new File(getContext().getFilesDir(),mImageName);
        if(!mFile.exists()) {
            mFile.createNewFile();
            getContext().getContentResolver().notifyChange(CONTENT_URI, null);
        }

        return (true);
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
}

そして私の活動では:

mImageCaptureUri = FileStorageContentProvider.CONTENT_URI;
4

1 に答える 1

1

通常、メソッドに渡される URI の一部として、そのようなものを指定します。したがって、次のようなものを使用します

mImageCaptureUri = Uri.withAppendedPath(FileStorageContentProvider.CONTENT_URI, "myImage");

次に、さまざまなメソッド ( などquery(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)) 内で、 を使用して URI からファイル名を抽出できますuri.getPath()

于 2013-07-29T21:47:10.860 に答える