連絡先グループをプログラムで取得する方法を教えてください。 はAndroid携帯に保存されていますか?Androidの連絡先グループ名にアクセスする
8
A
答えて
9
final String[] GROUP_PROJECTION = new String[] {
ContactsContract.Groups._ID, ContactsContract.Groups.TITLE };
cursor = getContentResolver().query(
ContactsContract.Groups.CONTENT_URI, GROUP_PROJECTION, null,
null, ContactsContract.Groups.TITLE);
GlobalConfig.groupList.clear();
Group g = new Group();
g.GroupIdList += "0";
g.setGroupTitle("ALL");
GlobalConfig.groupList.add(g);
while (cursor.moveToNext()) {
String id = cursor.getString(cursor
.getColumnIndex(ContactsContract.Groups._ID));
String gTitle = (cursor.getString(cursor
.getColumnIndex(ContactsContract.Groups.TITLE)));
if (gTitle.contains("Group:")) {
gTitle = gTitle.substring(gTitle.indexOf("Group:") + 6).trim();
}
if (gTitle.contains("Favorite_")) {
gTitle = "Favorites";
}
if (gTitle.contains("Starred in Android")
|| gTitle.contains("My Contacts")) {
continue;
}
Group gObj = new Group();
int pos = GlobalConfig.GroupContainsTitle(gTitle);
if (pos != -1) {
gObj = GlobalConfig.groupList.get(pos);
gObj.GroupIdList += "," + id;
GlobalConfig.groupList.set(pos, gObj);
} else {
gObj.GroupIdList += id;
gObj.setGroupTitle(gTitle);
GlobalConfig.groupList.add(gObj);
}
// Log.d("GrpId Title", gObj.getGroupIdList() +
// gObj.getGroupTitle());
}
5
@Abhiによって答えはOKですが、いくつかの制限しました:目に見えないグループ
- が削除連絡先
- の一覧が表示されますが一覧表示されます(つまり、どのグループであります削除されているはずであるが、依然として縁無しになっている)
-
private class GroupInfo {
String id;
String title;
@Override
public String toString() {
return title+ " ("+id+")";
}
public String getId() {
return id;
}
}
List<GroupInfo> groups = new ArrayList<GroupInfo>();
public void loadGroups() {
final String[] GROUP_PROJECTION = new String[] {
ContactsContract.Groups._ID,
ContactsContract.Groups.TITLE,
ContactsContract.Groups.SUMMARY_WITH_PHONES
};
Cursor c = getContentResolver().query(
ContactsContract.Groups.CONTENT_SUMMARY_URI,
GROUP_PROJECTION,
ContactsContract.Groups.DELETED+"!='1' AND "+
ContactsContract.Groups.GROUP_VISIBLE+"!='0' "
,
null,
null);
final int IDX_ID = c.getColumnIndex(ContactsContract.Groups._ID);
final int IDX_TITLE = c.getColumnIndex(ContactsContract.Groups.TITLE);
Map<String,GroupInfo> m = new HashMap<String, GroupInfo>();
while (c.moveToNext()) {
GroupInfo g = new GroupInfo();
g.id = c.getString(IDX_ID);
g.title = c.getString(IDX_TITLE);
int users = c.getInt(c.getColumnIndex(ContactsContract.Groups.SUMMARY_WITH_PHONES));
if (users>0) {
// group with duplicate name?
GroupInfo g2 = m.get(g.title);
if (g2==null) {
m.put(g.title, g);
groups.add(g);
} else {
g2.id+=","+g.id;
}
}
}
c.close();
}
1
古い過度の回答は必要ありません。もっと簡単な解決法がここにあります。
final String[] GROUP_PROJECTION = new String[] {
ContactsContract.Groups._ID, ContactsContract.Groups.TITLE };
Cursor gC = getContentResolver().query(
ContactsContract.Groups.CONTENT_URI, GROUP_PROJECTION,null,null,null);
gC.moveToFirst();
while (!gC.isAfterLast()) {
int idcolumn = gC.getColumnIndex(ContactsContract.Groups.TITLE);
String Id = gC.getString(idcolumn);
ArrayL.add(Id);
gC.moveToNext();
}
LinkedHashSet<String> s = new LinkedHashSet<String>();
s.addAll(ArrayL);
ArrayL.clear();
ArrayL.addAll(s);
+0
ありがとうございました!これは簡単なものです。 – Darsh
+0
"ArrayL"はどこから来たのですか? – retorquere
関連する問題
- 1. androidの連絡先プロセス名
- 2. Androidの連絡先連絡先遅い
- 3. 連絡先android
- 4. Android:連絡先の写真と連絡先の連絡先の挿入インテント
- 5. Android - ディスプレイ名で連絡先を検索
- 6. 生の連絡先データにアクセスする
- 7. Android IDで連絡先グループを取得する
- 8. Androidの連絡先のフォーム
- 9. Androidの連絡先のアカウント
- 10. ユーザーの連絡先 - android
- 11. 連絡先の総数 - android
- 12. Androidの連絡先リスト
- 13. Androidのは、連絡先
- 14. オートコンプリートの連絡先android
- 15. Androidの連絡先操作
- 16. は、どのように私はAndroidの電話帳の連絡先にアクセス&複数の連絡先
- 17. アンドロイドのsimカードの連絡先にアクセス
- 18. 私は連絡先の名前と番号を更新していますAndroidの連絡先に
- 19. Androidの連絡先:姓、名字、画像で連絡先リストを取得する方法
- 20. プログラムで連絡先をiphone連絡先リストに追加する
- 21. Androidで自分のアカウントに連絡先グループを追加する方法4.2
- 22. App EngineとAPIアクセスの連絡先
- 23. Outlook Mapiアクセス共有の連絡先
- 24. BlackBerryの連絡先リストから連絡先を取得する
- 25. グループ内のすべての連絡先を削除する
- 26. Googleの連絡先androidのapi
- 27. Androidでの連絡先の管理
- 28. アンドロイドアプリ:連絡先リストから「Me」連絡先を取得する
- 29. 連絡先。問題の連絡、複製、
- 30. androidの連絡先を読む
私の質問には完璧な解決策です。しかし、ここでは、GlobalConfigクラスの使い方と、与えられたGroupContainsTitleの格納方法について理解していません。 @AbhishekはGlobalConfigクラスの詳細を明らかにすることができます。それは私の時間を節約します。 – Prativa
@prativa GlobalConfigは、アプリケーション全体からアクセス可能な静的なコレクションを格納するためにここで使用される単純な静的クラスです。 – Abhi
パーフェクト!なぜ同じグループを増やすのですか?私は例えば得る。 3人の同僚と2人の友人。 – erdomester