Android – ContentProvider: проблема с настройкой имени файла для файлов, доставленных с помощью ContentProvider.openFileJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Android – ContentProvider: проблема с настройкой имени файла для файлов, доставленных с помощью ContentProvider.openFile

Сообщение Anonymous »

Я столкнулся со следующей проблемой при реализации ContentProvider для доставки изображений, хранящихся в области личных данных приложения в проекте Android:
Файлы, возвращаемые реализацией ниже иметь полный абсолютный путь к сохраненным изображениям в виде имени файла, которое выглядит так:
_data_data_com.mypackage.imageprovider_app_images_123456789.jpg
где app_images — это имя каталога, в котором изображения хранятся в приложении, а 123456789.jpg — это фактическое имя файла.
Мой вопрос: как я могу заставить ContentProvider устанавливать только фактическое имя файла? имя файла (или, альтернативно, имя файла, которое я указываю) для доставленных изображений?
Это должно быть возможно, поскольку, например, встроенные поставщики в Android могут предоставить только фактическое имя файла для изображения.
Таблица базы данных имеет столбцы для _id, имени файла и _data, где _data содержит абсолютный путь к изображению. в файловой системе.
Любые подсказки очень приветствуются :)
Заранее спасибо!
Здесь являются соответствующими частями моего текущего ContentProvider:
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder)
{
final SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
queryBuilder.setTables(PhotosTable.TABLE_NAME);

switch (URI_MATCHER.match(uri))
{
case PHOTO_DIR:
if (sortOrder == null)
{
sortOrder = PhotosDirectory.DEFAULT_SORT_ORDER;
}
break;

case PHOTO_ID:
queryBuilder.appendWhere(IPhotoColumns.FILENAME + "="
+ uri.getPathSegments().get(1) + " AND ");
break;

default:
throw new IllegalArgumentException("Unknown URI " + uri);
}

if (!mDb.isOpen())
{
assignWritableDb();
}

return queryBuilder.query(mDb, PhotosDirectory.ALL_COLUMNS,
selection, selectionArgs, null, null, sortOrder);
}

@Override
public ParcelFileDescriptor openFile(Uri uri, String mode)
{
if (URI_MATCHER.match(uri) != PHOTO_ID)
{
throw new IllegalArgumentException(
"operation only permitted for single file");
}
try
{
return openFileHelper(uri, mode);
}
catch (FileNotFoundException e)
{
return null;
}
}


Подробнее здесь: https://stackoverflow.com/questions/543 ... d-by-using
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»