package tw.com.akdg.thsrreceipt;
import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.net.Uri;
import android.os.ParcelFileDescriptor;
import android.util.Log;
import java.io.File;
import java.io.FileNotFoundException;
public class CachedFileProvider extends ContentProvider {
private static final String AUTHORITY = "tw.com.akdg.thsrreceipt.provider";
private static final UriMatcher mUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
static {
mUriMatcher.addURI(AUTHORITY, "*", 1);
}
public static String getAuthority() { return AUTHORITY; }
@Override
public boolean onCreate() { return true; }
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { return null; }
@Override
public String getType(Uri uri) { return null; }
@Override
public Uri insert(Uri uri, ContentValues values) { return null; }
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) { return 0; }
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { return 0; }
@Override
public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
switch (mUriMatcher.match(uri)) {
case 1 :
String fileLocation = getContext().getCacheDir() + "/" + uri.getLastPathSegment();
Log.v("fileLocation = ", fileLocation);
ParcelFileDescriptor parcelFileDescriptor = ParcelFileDescriptor.open(
new File(fileLocation), ParcelFileDescriptor.MODE_READ_ONLY);
return parcelFileDescriptor;
default:
throw new FileNotFoundException("ParcelFileDescriptor openFile is Error " + uri.toString());
}
}
}