Поставщик контента не работает на устройствах семейства Nexus

Я разрабатываю приложение с ContentProvider, чтобы предлагать некоторые внутренние файлы (двоичные файлы ). Когда я развертываю его на Samsung Galaxy S, SII или любом другом, он работает отлично, купите, когда я пробую его на Galaxy Nexus или Nexus S, он не работает!

Сценарий:

Доступ к моему ContentProvider можно получить с помощью двух URI. В зависимости от этого URI поставщик создает DataCursor (, расширяющий CrossProcessCursor )или ModelCursor (, расширяющий также CrossProcessCursos ). Дело в том, что в семействе Nexus я обращаюсь к первому курсору (DataCursor )для получения идентификатора, и он отлично работает, но при обращении ко второму всегда выбрасывает "OutOfBoundsException" при попытке

getBlob()

метод.

Провайдер

@Override
    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
        Cursor cursor = null;

        // If the third app requieres DATA (phrase id, phrase string and phrase name)
        if(uri.toString().equalsIgnoreCase(ProviderConstants.DATA_URI.toString())) {
            // Build the DataHelper and the customized cursor
            DataHelper dataHelper = new DataHelper(getContext());
            cursor = new DataCursor(dataHelper);
        } else if(uri.toString().equalsIgnoreCase(ProviderConstants.MODEL_URI.toString())) {            
            // Let's take the model id from the selectionArgs...
            if (selectionArgs != null && selectionArgs.length > 0) {
                String modelId = selectionArgs[0];

                // Get an instance to the persistent storage service...
                File file = FileManager.getDirectory(getContext(), modelId);
                FileSystemPersistentStorageService clientPersistentStorageService = new FileSystemPersistentStorageService(file);

                cursor = new ModelCursor(clientPersistentStorageService);
            } else {
                Log.e("ContentProvider", "Query without model id on selectionArgs");
            }
        }

        return cursor;
    }

Если вам нужен какой-то код или что-то еще, просто попросите его, пожалуйста!

Большое спасибо.

11
задан Kevin Panko 2 January 2013 в 20:01
поделиться