2011-11-26 9 views
7

मुझे किसी शब्द को दिए गए उपयोगकर्ता डिक्शनरी प्रदाता से पूछताछ करने का कोई अच्छा उदाहरण कोड नहीं दिख रहा है।एंड्रॉइड पर उपयोगकर्ता डिक्शनरी प्रदाता से कैसे पूछताछ करें?

Cursor cur = getContentResolver().query(
    UserDictionary.Words.CONTENT_URI, 
    new String[] {Words._ID, Words.WORD}, 
    Words.WORD + "=?", 
    new String[] {"test"}, 
    null); 

मैं भी एक प्रश्न को निर्दिष्ट किया है की कोशिश की नहीं है और साथ ही एक प्रक्षेपण को निर्दिष्ट नहीं और कर्सर हमेशा खाली है: मेरा प्रश्न की तरह दिखता है। मैंने अपने मैनिफेस्ट में android.permission.READ_USER_DICTIONARY शामिल किया है।

+0

में अब उपलब्ध नहीं है। – Suragch

उत्तर

1

इस

final String[] QUERY_PROJECTION = { 
    UserDictionary.Words._ID, 
    UserDictionary.Words.WORD 
}; 
Cursor cursor = getContentResolver() 
      .query(UserDictionary.Words.CONTENT_URI, QUERY_PROJECTION, "(locale IS NULL) or (locale=?)", 
      new String[] { Locale.getDefault().toString() }, null); 

मैं इस परीक्षण नहीं किया केवल एक सुझाव

0

पूर्वशर्त प्रयास करें,:
Settings पर सुनिश्चित करें कि आप UserDictionary में उपयुक्त शब्द हैं ->Language & Input ->Personal dictionary

नमूना एसक्यूएल क्वेरी जो उपयोगकर्ता शब्दकोश में SO वाले शब्दों की खोज करती है और यह समकक्ष एंड्रॉइड कोड नमूना है। ? का उपयोग args द्वारा प्रतिस्थापित करने के लिए नोटिस करें।

SQL क्वेरी:

SELECT UserDictionary.Words._ID, UserDictionary.Words.WORD FROM UserDictionary.Words.CONTENT_URI WHERE UserDictionary.Words.WORD LIKE "%SO% 

समतुल्य कोड:

AndroidManifest.xml में
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); 
    } 
} 

अनुमतियां:
<uses-permission android:name="android.permission.READ_USER_DICTIONARY"/>

0

एपीआई 23 से प्रारंभ होकर, उपयोग आर शब्दकोश केवल आईएमई और वर्तनी जांचकर्ता के माध्यम से सुलभ है। https://developer.android.com/reference/android/provider/UserDictionary.html

android.permission.READ_USER_DICTIONARY अनुमति तो "परीक्षण" UserDictionary में नहीं है, तो उस कर्सर खाली होगा एम

संबंधित मुद्दे