2
連絡先を表示名で検索する方法があります。例えば、この回答Android - Find a contact by display nameAndroid - ファジー/近似/類似の一致で連絡先を検索
しかし、私はファジーマッチで連絡先を見つける必要があります。例えば、 「キム」が見つからない場合は「キーム」という連絡先を返す必要があります。
どうすればよいですか?
連絡先を表示名で検索する方法があります。例えば、この回答Android - Find a contact by display nameAndroid - ファジー/近似/類似の一致で連絡先を検索
しかし、私はファジーマッチで連絡先を見つける必要があります。例えば、 「キム」が見つからない場合は「キーム」という連絡先を返す必要があります。
どうすればよいですか?
あり表示名以上のあいまい検索を行うことができます何のビルドAPIはませんが、あなたはそれを自分で行うことができ、その難しいことではありません。
と比較するように類似文字列はアルゴリズムを比較し、ここでのコードは次のとおりです。
ステップ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