To avoid discussion, I will modify this answer if you provide more information ...
but for now ...
you have android:searchSuggestIntentData="content://com.simple.search.SuggestionProvider/tests"
in xml
so you need to change
private static UriMatcher makeUriMatcher() { UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH); // For the record matcher.addURI(AUTHORITY, "tests", SEARCH_TESTS); matcher.addURI(AUTHORITY, "tests/#", GET_TEST); // For suggestions table matcher.addURI(AUTHORITY, "tests/" + SearchManager.SUGGEST_URI_PATH_QUERY, SEARCH_SUGGEST); matcher.addURI(AUTHORITY, "tests/" + SearchManager.SUGGEST_URI_PATH_QUERY + "/*", SEARCH_SUGGEST); return matcher; }
If you do not see the differences, I added "tests /"
so now it will match content://com.simple.search.SuggestionProvider/tests/search_suggest_query?limit=50
, which will definitely send QSB ...
in any case, you can / must add a limit to your request
case SEARCH_SUGGEST: if (selectionArgs == null) { throw new IllegalArgumentException( "selectionArgs must be provided for the Uri: " + uri); } final String limit = uri.getQueryParameter(SearchManager.SUGGEST_PARAMETER_LIMIT); return getSuggestions(selectionArgs[0], limit);
and then in getSuggestions
helper.getReadableDatabase().query(table, projection, selection, selectionArgs, null, null, sortOrder, limit);
EDIT
AUTHORITY + "tests/" + SearchManager.SUGGEST_URI_PATH_QUERY
should be the same as android:searchSuggestIntentData
!!!
EDIT2: from the doc http://developer.android.com/guide/topics/search/adding-custom-suggestions.html
Choice of value in android: searchSuggestSelection attribute of your searchable file, or null if you have not declared android: searchSuggestSelection. More about using this to get the request below. selectionArgs Contains the search query as the first (and only) element of the array, if you have the android: searchSuggestSelection attribute declared in your search capability. If you have not declared android: searchSuggestSelection, then this parameter is zero. More about using this to get the request below.
add android:searchSuggestSelection=" ? "