Condición previa: Asegúrate de que tienes las palabras adecuadas en UserDictionary en
Settings
->Language & Input
->Personal dictionary
.
Ejemplo de consulta SQL que busca palabras que contengan SO
en el diccionario del usuario y su equivalente muestra el código de Android. Observe el uso de ?
para ser reemplazado por args
.
consulta SQL:
SELECT UserDictionary.Words._ID, UserDictionary.Words.WORD FROM UserDictionary.Words.CONTENT_URI WHERE UserDictionary.Words.WORD LIKE "%SO%
código equivalente:
String[] columns = {UserDictionary.Words._ID, UserDictionary.Words.WORD};
String condition = UserDictionary.Words.WORD + " LIKE ? ";
// ? in condition will be replaced by `args` in order.
String[] args = {"%SO%"};
ContentResolver resolver = getContentResolver();
Cursor cursor = resolver.query(UserDictionary.Words.CONTENT_URI, columns, condition, args, null);
//Cursor cursor = resolver.query(UserDictionary.Words.CONTENT_URI, projection, null, null, null); - get all words from dictionary
if (cursor != null) {
int index = cursor.getColumnIndex(UserDictionary.Words.WORD);
//iterate over all words found
while (cursor.moveToNext()) {
//gets the value from the column.
String word = cursor.getString(index);
Log.i(TAG, "Word found: " + word);
}
}
Permiso de AndroidManifest.xml:
<uses-permission android:name="android.permission.READ_USER_DICTIONARY"/>
Si "prueba" no está en la UserDictionary, entonces eso sería hacer que el cursor vacío. – Suragch