我有Android设备中的联系人列表.我想获取所有联系人的关联groupIds和GroupName.我一直在尝试使用ContactsContract.Groups._ID来获取ID,但我无法得到它.有人可以通过其他方式获取联系人的groupID吗?
我正在尝试将Android内置电话簿中的名称和电子邮件ID添加到我的页面中,我可以获取姓名,联系人ID,电话号码.但是我无法从Android电话簿中获取电子邮件ID.
public static final int PICK_CONTACT = 1;
@Override
button.setOnClickListener(new OnClickListener() {
public void onClick(View _view) {
Intent intent = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
}
});
}
@Override
public void onActivityResult(int reqCode, int resCode, Intent data)
{
super.onActivityResult(reqCode, resCode, data);
switch(reqCode) {
case (PICK_CONTACT) : {
if (resCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
c.moveToFirst();
String name = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
String name1 = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.HAS_PHONE_NUMBER));
String ContactID = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
if(Integer.parseInt(name1) == 1){ …Run Code Online (Sandbox Code Playgroud) 关于同一主题有很多讨论,但在这里花了4个小时后,我找不到有效的描述或链接与Checkbox建立联系人选择器.
我有一个活动DONE按钮,并listview用checkbox.我已设法正确显示联系人.现在我想以bundle(我认为最好的方式)返回选定的联系电话号码,以便我可以获得数字列表onActivityResult().我不确定我跟随的方式是对还是不对.
这是我的代码:
public class ContactPickerMulti extends ListActivity implements OnClickListener {
// List variables
public String[] Contacts = {};
public int[] to = {};
public ListView myListView;
Button save_button;
private TextView phone;
private String phoneNumber;
private Cursor cursor;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contacts_multi);
// Initializing the buttons according to their ID
save_button = (Button) findViewById(R.id.contact_done);
// Defines listeners for the buttons
save_button.setOnClickListener(this);
Cursor mCursor = getContacts();
startManagingCursor(mCursor); …Run Code Online (Sandbox Code Playgroud) 我想从Android只选择具有电话号码的联系人的唯一联系人.我正在使用此代码
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
null, null, ContactsContract.Contacts.DISPLAY_NAME);
// Find the ListView resource.
mainListView = (ListView) findViewById(R.id.mainListView);
// When item is tapped, toggle checked properties of CheckBox and
// Planet.
mainListView
.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View item,
int position, long id)
{
ContactsList planet = listAdapter.getItem(position);
planet.toggleChecked();
PlanetViewHolder viewHolder = (PlanetViewHolder) item
.getTag();
viewHolder.getCheckBox().setChecked(planet.isChecked());
}
});
// Create and populate planets.
planets = (ContactsList[]) getLastNonConfigurationInstance();
// planets = new Planet[10]; …Run Code Online (Sandbox Code Playgroud) android contacts android-contentprovider android-contacts android-cursor
可以轻松打开Android联系人应用程序以显示所有联系人并选择其中一个:
在活动中:
private int PICK_CONTACT = 853456;
// ...
// open contact list
void openContactPicker() {
Intent it= new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
startActivityForResult(it, PICK_CONTACT);
}
// when back from intent: use pick result
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// ...
switch (requestCode) {
case PICK_CONTACT:
if (dataOk(data)) {
extractContactInfo(data);
} else {
showErrorMessage();
}
break;
// ...
}
Run Code Online (Sandbox Code Playgroud)
但是是否可以设置一些过滤条件,以便联系应用程序只显示那些具有指定元素的联系人 - 例如完整的邮政信息,或正确的电子邮件或电话号码?
我的应用程序需要邮政信息,当前实现的工作流程是这样的:
由于许多联系人没有邮政信息,因此在大多数情况下会显示一个消息框"抱歉没有可用于此联系人的邮政信息".这不是一种可接受的行为.
一种替代方案是 - 我只是实现这一点 …
我的应用程序有一个由设备上注册的联系人填充的 listView,但是当我加载 listView 时,它花费的时间太长了!这是我的代码:
public List<Contact> getContactsList(Context context, ContentResolver contentResolver) {
List<Contact> listContatos = new ArrayList<Contact>();
Uri uri = ContactsContract.Contacts.CONTENT_URI;
Cursor cursorContacts = contentResolver.query(uri, null, null, null, ContactsContract.Contacts.DISPLAY_NAME + " COLLATE NOCASE ASC;");
try {
// while there is a next contact, retrieves your data
while (cursorContacts.moveToNext()) {
Contact c = getContact(context, cursorContacts);
if (c != null) {
listContatos.add(c);
}
}
} finally {
// Closes Cursor
cursorContacts.close();
}
return listContatos;
}
public Contact getContact(Context context, Cursor contactsCur) {
Contact …Run Code Online (Sandbox Code Playgroud) 我有一个联系人列表,我想在每个联系人的QuickContactBadge中显示他的名字的第一个字母.我可以在运行时创建图像吗?
这就像Android Lollipop,其中联系人和拨号器使用带字母的QuickContactBadge:
![]()
我开发了一个需要做两件事的应用程序:
android android-syncadapter android-contacts android-account android-contact-mimetype
我从电话簿中获取了所有设备联系人.现在我想从电话簿中获取的特定联系人获取链接帐户(facebook,twitter,instagram,LinkedIn).我该怎么办?
这是获取联系人的代码.
public Cursor getContactsCursor(FragmentActivity activity) {
Cursor cursor = null;
try {
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + "= 0" + " OR " + ContactsContract.Contacts.IN_VISIBLE_GROUP + "= 1";
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
ContentResolver cr = activity.getContentResolver();
return cr.query(ContactsContract.Contacts.CONTENT_URI, null, selection, null, sortOrder);
} catch (Exception e) {
AppLogger.e(Helper.class.getSimpleName(), e.getMessage());
return cursor;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我不知道如何获取与特定联系人链接的帐户(如facebook,linkedin等).
有人可以指导我.
更新: 在下面附加的图像中,单击红色突出显示的部分,在浏览器中打开链接的用户配置文件.因此,我愿意获取用于打开用户个人资料页面的字段.
提前致谢.
我已经创建了一个有效的联系人列表,但是当我单击任何联系人时,我只能从 ListView 获得 Android 屏幕上第 1 个项目的联系人编号。
我想获得该职位点击联系人的电话号码。我在网上到处搜索,但没有得到任何解决方案,我试图解决这个问题过去 13 天,但我仍然无法解决这个问题,如果有人能解决这个问题,请回答。感谢兄弟/姐妹的帮助!
li.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView txtNummber = li.findViewById(android.R.id.text2)
}
});
Run Code Online (Sandbox Code Playgroud)