Acceso al proveedor de contenido UserDictionary en la API android nivel 23
Estoy desarrollando una aplicación android que tiene como objetivo mostrar una lista en la pantalla con el contenido presente en el diccionario del usuario.
El problema es que al compilar y ejecutar la aplicación en el proveedor de contenido API 23 de Android, devuelve un cursor sin ningún elemento, sin datos.
- Prácticas recomendadas para sincronizar una base de datos SQL con un servidor remoto REST en Android
- ¿Qué es una Clase de Contrato y cómo se usa
- Android Sincronización automática con datos personalizados
- Buen esquema para eliminar el archivo de base de datos en SQLiteOpenHelper.onDowngrade ()
- Filtrar entradas en las funciones personalizadas de ContentProvider
Es extraño porque la API anterior 23 (22, 21, 19, …) la aplicación se ejecuta y muestra los datos en el ListView normalmente.
Abajo está el código de mi Actividad:
import android.app.LoaderManager; import android.content.CursorLoader; import android.content.Loader; import android.database.Cursor; import android.provider.UserDictionary; import android.os.Bundle; import android.widget.ListView; import android.widget.SimpleCursorAdapter; import android.widget.Toast; public class MainActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<Cursor> { private ListView listView; private SimpleCursorAdapter adapter; private static final String[] COLUMNS = { UserDictionary.Words.WORD, UserDictionary.Words._ID, UserDictionary.Words.LOCALE }; private static final int[] LIST_ITEM_VIEWS = { R.id.name, R.id.id_word, R.id.locale }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.list); adapter = new SimpleCursorAdapter(getApplicationContext(), R.layout.item_list, null, COLUMNS, LIST_ITEM_VIEWS, 0); listView.setAdapter(adapter); getLoaderManager().initLoader(0, null, this); } @Override public Loader<Cursor> onCreateLoader(int id, Bundle args) { return new CursorLoader(getApplicationContext(), UserDictionary.Words.CONTENT_URI, COLUMNS, null, null, UserDictionary.Words.WORD); } @Override public void onLoadFinished(Loader<Cursor> loader, Cursor data) { adapter.swapCursor(data); } @Override public void onLoaderReset(Loader<Cursor> loader) { adapter.swapCursor(null); } }
- ¿Es posible acceder a recursos en otro APK sin utilizar proveedores de contenido?
- ¿Cómo sabe CursorLoader con LoaderManager para enviar el cursor a un CursorAdapter?
- Esporádico IllegalArgumentException: Desconocido Contenido de URL: //
- Servir imágenes a través de un proveedor de contenido en Android
- Cierre de la base de datos en un ContentProvider
- ¿Cómo implementar consultas complejas utilizando un proveedor de contenido?
- Página web del navegador web de Android
- Android: Observación de SMS para subprocesos eliminados
Esto se informó aquí: Android Traker tema
Respuesta oficial: Trabajar según lo previsto. Esta característica se ha eliminado efectivamente desde la API 23.
Hay un problema en el nivel 23 de API donde el proveedor de diccionario de usuario devuelve un cursor sin datos, incluso cuando se rellena el diccionario.
Una tarea actual consiste en use a device or emulator running API level 22 or lower
. Puede crear rápidamente un emulador de API de nivel 22.
- ¿Es seguro guardar sólo armeabi-v7a para un androide apk
- ¿Cómo puedo implementar esta vista en Android?