2017-06-09 14 views

答えて

1

あり表示名以上のあいまい検索を行うことができます何のビルドAPIはませんが、あなたはそれを自分で行うことができ、その難しいことではありません。

  1. はDB
  2. 使用からすべての連絡先の名前を読みますJAROウィンクラーが要求された名前
  3. 戻りベストマッチのステップ1については

と比較するように類似文字列はアルゴリズムを比較し、ここでのコードは次のとおりです。

ステップ2については
Map<String, Long> contacts = new HashMap<String, Long>(); 

String[] projection = {Contacts._ID, Contacts.DISPLAY_NAME}; 
// use null if you want to include hidden contacts 
String selection = Contacts.IN_VISIBLE_GROUP + "=1"; 
Cursor cur = cr.query(Contacts.CONTENT_URI, projection, selection, null, null); 

while (cur != null && cur.moveToNext()) { 
    long id = cur.getLong(0); 
    String name = cur.getString(1); 
    contacts.put(name, id); 
} 
if (cur != null) { 
    cur.close(); 
} 

、あなたがJAROウィンクラー、または他のいくつかの文字列の距離アルゴリズムを使用することができ、ここであなたを助けることができるライブラリです。 https://github.com/tdebatty/java-string-similarity

関連する問題