In general I am trying to create a Suggestion provider that would be able to pickup emails from the contacts list.
These are my sources: AnroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.sphericbox.xmail" android:versionCode="1" android:versionName="1.0.0"> <application android:icon="@drawable/icon" android:label="@string/ app_name"> <activity android:name=".XMailActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.SEARCH" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" / > </activity> <provider android:name="com.sphericbox.xmail.XMailSuggestionProvider" android:authorities="com.sphericbox.xmail.XMailSuggestionProvider"/> </application> <uses-permission android:name="android.permission.READ_CONTACTS"></ uses-permission> </manifest> res/xml/searchable.xml <?xml version="1.0" encoding="UTF-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/search_label" android:hint="@string/search_hint" android:searchSuggestAuthority="com.sphericbox.xmail.XMailSuggestionProvider" android:searchSuggestIntentAction="android.intent.action.VIEW"/> XMailActivity.java package com.sphericbox.xmail; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class XMailActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button btn = (Button) findViewById(R.id.find); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(final View arg0) { onSearchRequested(); } }); } } XMailSuggestionProvider.java package com.sphericbox.xmail; import android.app.SearchManager; import android.content.ContentProvider; import android.content.ContentValues; import android.database.Cursor; import android.database.MatrixCursor; import android.net.Uri; import android.provider.Contacts.ContactMethods; import android.util.Log; public class XMailSuggestionProvider extends ContentProvider { private static final String TAG = "XMailSuggestionProvider"; @Override public int delete(final Uri arg0, final String arg1, final String[] arg2) { return 0; } @Override public String getType(final Uri arg0) { return null; } @Override public Uri insert(final Uri arg0, final ContentValues arg1) { return null; } @Override public boolean onCreate() { return false; } @Override public Cursor query(final Uri uri, final String[] projection, final String selection, final String[] selectionArgs, final String sortOrder) { Log.d(TAG, "uri: " + uri); final Uri baseUri = ContactMethods.CONTENT_EMAIL_URI; final Cursor c = getContext().getContentResolver().query(baseUri, new String[] {"_id", "data"}, null, null, null); final MatrixCursor result = new MatrixCursor(new String[] { SearchManager.SUGGEST_COLUMN_TEXT_1}); try { while (c.moveToNext()) { for (int i = 0; i < c.getColumnCount(); i++) { Log.d(TAG, c.getColumnName(i) + " = " + c.getString(i)); } final String resultText = c.getString(1); result.addRow(new Object[] {resultText}); } } finally { c.close(); } return result; } @Override public int update(final Uri arg0, final ContentValues arg1, final String arg2, final String[] arg3) { return 0; } } As I have written before no combination of columns/values for the Cursor 'result' worked for me so far.. :( would appreciate any idea or feedback On Oct 26, 6:41 pm, shotwave <[EMAIL PROTECTED]> wrote: > Hi, I am trying to implemente a custom suggestion provider which will > allow to promt user in selecting email addresses. Unfortunately no > matter what I do I keep getting the > > '10-26 22:22:02.871: WARN/SearchDialog(565): Suggestions cursor > discarded due to missing required columns.' > > message in console, though looks like I have specified all the > possible columns in the resulting cursor... > > final MatrixCursor result = new MatrixCursor(new String[] { > SearchManager.SUGGEST_COLUMN_FORMAT, > SearchManager.SUGGEST_COLUMN_TEXT_1, > SearchManager.SUGGEST_COLUMN_TEXT_2, > SearchManager.SUGGEST_COLUMN_ICON_1, > SearchManager.SUGGEST_COLUMN_ICON_2, > SearchManager.SUGGEST_COLUMN_INTENT_ACTION, > SearchManager.SUGGEST_COLUMN_INTENT_DATA, > SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID, > SearchManager.SUGGEST_COLUMN_QUERY, > SearchManager.SUGGEST_MIME_TYPE, > SearchManager.SUGGEST_URI_PATH_QUERY}); > // fill the cursor using addRow(Object[]) > return result; > > what am I doing wrong? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

