我正在关注这些链接以获取我的应用程序中的联系人
http://www.higherpass.com/Android/Tutorials/Working-With-Android-Contacts/
我可以在手机上显示联系人列表
-
我想在每个联系人处添加一个复选框,以便用户可以选择多个联系人,通过单击完成按钮,他应该能够获得他选择的所有联系人
另外,我想获取联系人姓名以及联系电话号码,请参阅我的代码:
if (resultCode == Activity.RESULT_OK) { Uri contactData = data.getData(); Cursor c = managedQuery(contactData, null, null, null, null); if (c.moveToFirst()) { String name = c.getString(c .getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)); String number = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.HAS_PHONE_NUMBER)); Log.v("name", name +" "+number); // TODO Whatever you want to do with the selected contact // name. } }
在log cat上它显示输出为:
01-09 12:46:41.688: V/name(699): Xyz 1
Run Code Online (Sandbox Code Playgroud)
这是联系人的名字是xyz,它至少有一个与之关联的电话号码.请帮助我如何获得与该联系人相关的号码.
编辑:
如果我String number = c.getString(c.getColumnIndexOrThrow(People.NUMBER));
在代码中使用this()行,我会得到以下异常:
01-09 13:33:23.008: E/AndroidRuntime(786): FATAL EXCEPTION: main
01-09 13:33:23.008: E/AndroidRuntime(786): java.lang.RuntimeException: …
Run Code Online (Sandbox Code Playgroud) 我正在编写一个Android应用程序,其数据类型代表一个人(特别是孩子的父母或监护人).我希望能够从Android设备的"联系人"数据库中"导入"相关数据字段.(这应该是可选的;也就是说,不要求父/监护人已经在联系人数据库中,如果他们添加新的父母/监护人,也不会更新联系人数据库.)
到目前为止,我已经编写了代码来启动一个新的Intent来选择特定的Contact(使用Intent.ACTION_PICK).然后,我获得一个表示数据库中特定联系人的URI.
不幸的是,我不知道下一步是什么.看起来这应该是世界上最简单的事情,但显然不是.我已经阅读了Android开发者网站上的文档,并查看了多本Android手册.没有快乐.
我想得到的具体信息是:
联系人的姓名(如果可能的话,首先和最后一个)
联系人(主要)电子邮件地址
联系人的手机号码
我想通过查询使用ContentResolver可以实现这一点,但我不知道如何使用Intent返回的URI来做到这一点.大多数文档假定您具有联系人ID,而不是联系人的URI.此外,我不知道我可以在查询的投影中添加哪种字段,假设这甚至是我想要的正确方法.
这是我的起始代码:
// In a button's onClick event handler:
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
// In onActivityResult:
if (resultCode == RESULT_OK) {
if (requestCode == PICK_CONTACT) {
contactURI = data.getData();
// NOW WHAT?
}
}
Run Code Online (Sandbox Code Playgroud) android android-intent android-contentprovider android-contacts
这里我的联系人姓名显示在列表视图上.通过单击列表我得到ContactName
和Contact Id
.从那个我想Phone number
通过使用Contact ID
或取Contact name
,请帮助我.
这是我的代码
void ReadContacts(String sort) {
final Uri uri = ContactsContract.Contacts.CONTENT_URI;
final String[] projection = new String[] {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME
};
//boolean mShowInvisible = false;
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '1'";
String[] selectionArgs = null;
final String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
m_curContacts = managedQuery(uri, projection, selection, selectionArgs, sortOrder);
String[] fields = new String[] {ContactsContract.Data.DISPLAY_NAME};
m_slvAdapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1,
m_curContacts, …
Run Code Online (Sandbox Code Playgroud) 我在android中开发了一个gps跟踪应用程序.我完成了显示地图的东西.现在我想在顶部做一个按钮,当点击它时会显示联系人,然后当我选择联系人时它应该显示他或她的位置.请帮我解决一下这个.谢谢.
我需要检索用户存储在他的Gmail帐户中的电子邮件地址.在我的应用程序中,用户现在可以决定邀请他的朋友.我希望应用程序(如果用户告诉我"ok")显示存储在gmail中的用户联系人电子邮件地址列表,其中他可以选择一个或多个...
我知道存在Google API的身份验证和授权".这是正确的方法吗?并且,如何在Android中使用它们?
我正在尝试将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) (更新)这适用于模拟器,但不适用于我的HTC图例:(
我的ListActivity中有以下方法,并且它没有返回Cursor中的任何值(getCount = 0)
我无法理解为什么.我在列表中点击哪个联系人并不重要.
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
Log.d(TAG,"onListItemClick");
//get Telephone number for entry and display in Toast
Uri phoneUri = ContentUris.withAppendedId(Phone.CONTENT_URI, id);
Log.d(TAG,String.valueOf(phoneUri));
String[] projection = new String[]{Phone.NUMBER};
//Get Cursor
Cursor phoneCursor = managedQuery(phoneUri, projection, null, null, null);
while(phoneCursor.moveToNext()){
String dspNumber;
String number = phoneCursor.getString(phoneCursor.getColumnIndexOrThrow(Phone.NUMBER));
if(number==""){
dspNumber = "No number found";
}else{
dspNumber = number;
}
Toast.makeText(this,dspNumber, 3000).show();
}
}
Run Code Online (Sandbox Code Playgroud)