我想预先填充我的应用程序中的一些字段,以帮助用户在我的应用程序中订阅服务时.
那么我如何获得设备所有者的名字和姓氏.我想使用与Google帐户绑定的默认信息; 到目前为止我得到了这个:
AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccounts();
for (Account account : accounts) {
if (account.type.compareTo("com.google") == 0)
{
String possibleEmail = account.name;
// how to get firstname and lastname here?
}
}
Run Code Online (Sandbox Code Playgroud)
如果你建议,我愿意采取其他方法 - 只要我能得到所有者的电子邮件,名字和姓氏.
如何通过Facebook同步适配器获取已同步到本机联系人应用程序的联系人的Facebook ID或URL?
我浏览了不同的网址,但没有看到有关Facebook的任何信息.
我试过了
ContactsContract.Data.CONTENT_URI
ContactsContract.CommonDataKinds.Email.CONTENT_URI
ContactsContract.CommonDataKinds.Phone.CONTENT_URI
ContactsContract.Contacts.CONTENT_URI
Run Code Online (Sandbox Code Playgroud)
作为以下代码中的URI:
Uri uri = ContactsContract.Data.CONTENT_URI;
Cursor c = getContentResolver().query(uri, null, null, null, null);
while (c.moveToNext()) {
for (int i=0; i<c.getColumnCount(); i++) {
Log.d(TAG, c.getColumnName(i) + ": " + c.getString(i));
}
Log.d(TAG, "==================================");
}
Run Code Online (Sandbox Code Playgroud)
我确实得到了一个列值
contact_status_res_package: com.facebook.katana
Run Code Online (Sandbox Code Playgroud)
在这个转储中,我也获得了联系人状态(contact_status列),但我无处可查看此联系人的facebook网址或ID.
我正在填充联系人列表详细信息以成功列出视图.我的代码:
String order = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC";
Cursor curLog = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null,order);
Run Code Online (Sandbox Code Playgroud)
如何在列表视图中避免重复数据,因为联系人详细信息如果已加入联系人,即加入手机和Google,则会重复?.屏幕就像
我想以编程方式选择只有1个名字而不是两个名字?任何想法如何选择?
我正在尝试更新联系人数据,并将每个数据的生日.
似乎对于我尝试的每个设备(我甚至没有尝试过那么多设备),插入有一个或多个这些问题:
我尝试过使用时间戳和完整的ISO8601格式(因为这个链接,意思是"yyyy-MM-dd HH:mm:ss").我也试过"yyyy-MM-dd",我尝试使用设备日期的默认格式.
所有人都有上述问题(每个问题至少有一个).
这是一段代码:
final Date birthdate = ...
// String birthdateStr = new SimpleDateFormat("yyyy-MM-dd").format(birthdate);
// String birthdateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()).format(birthdate);
// String birthdateStr = new SimpleDateFormat(((SimpleDateFormat) java.text.DateFormat.getDateInstance(java.text.DateFormat.DEFAULT, Locale.getDefault())).toLocalizedPattern(),Locale.getDefault()).format(birthdate);
String birthdateStr = Long.toString(birthdate.getTime()/1000);
final Builder builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);
builder.withValue(Data.RAW_CONTACT_ID, ...)
.withValue(ContactsContract.Data.MIMETYPE, Event.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Event.START_DATE, birthdateStr)
.withValue(ContactsContract.CommonDataKinds.Event.TYPE,
ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY);
Run Code Online (Sandbox Code Playgroud)
当然,我也在这里看过这个问题,并发现了类似的问题,但是提出的解决方案似乎都没有奏效.
我应该如何将生日插入联系人?为什么每个设备都有自己的方式来解释日期?生日的正确标准是什么?
我已经实现了自定义ContactsDirectoryProvider,当Contacts或Dialer应用程序使用表单内容的 URI搜索联系人时,它可以正常工作://com.android.contacts/data/phones/filter
但是,当InCallUI或CallLog尝试使用URis 内容检索联系信息时 :/ contacts/phone_lookup不会调用我的提供者 的查询方法.
任何建议请....
PS我没有实现单独的同步提供程序可能这是问题吗?
我想将我的应用程序与联系人管理器集成:
更确切地说:
当我在手机中运行联系人应用程序然后我点击任何头像时,弹出一个Popup(快速联系人徽章)窗口会显示一些应用程序(联系人,邮件等)我想在那个地方添加我的应用程序.
那可能吗?
我希望能够清楚.
提前致谢.
我想将手机通讯录导出到外部存储区域.我没有使用这种方法.有人指导我这样做吗?
我正在开发Android Honeycomb(v3.0)应用程序,该应用程序需要显示存储在设备上注册的Google帐户中的所有联系人.我遇到的一个问题是,我只能检索"我的联系人","Android中已加星标"和"其他联系人"中可用的联系人.我还希望能够从"目录"中检索联系人.我认为"目录"部分是Google向希望向其他人提供其域内所有成员/员工目录的组织和公司提供的功能.请看下面的截图:

到目前为止,我的清单文件中有以下行:
<uses-permission android:name="android.permission.READ_CONTACTS" />
Run Code Online (Sandbox Code Playgroud)
我试过使用这段代码:
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
}
cursor.close();
Run Code Online (Sandbox Code Playgroud)
在我的情况下,"我的联系人"和"在Android中加星标"是空的.但是,获得了"其他联系人"中的(1)联系人.但是,"目录"包含数百个未检索的联系人.
我的问题:有没有办法确保检索"目录"中的联系人?我知道我可以简单地使用网络浏览器复制联系人,然后将它们同步到设备,但如果新的联系人被添加到"目录",我必须每次都手动执行此操作,所以这不是对我来说很棒的选择.请指教.
android google-contacts-api contactscontract android-contacts android-3.0-honeycomb
您好我正在实施一个短信应用程序,现在能够检索所有消息与他们各自的联系信息,如显示名称,照片uri ..并在一个自定义列表中显示它们在项目点击带您进行相应的讨论.在这里我的问题是同步所有这些消息的时间,
这是我的代码:
ReadSMS.java:
public class ReadSMS {
ArrayList<HashMap<Contact, ArrayList<OneComment>>> recentChats;
Application _context;
public ReadSMS(Application context) {
this._context = context;
this.recentChats = ((ChatApplication) _context).getChats();
}
public ArrayList<HashMap<Contact, ArrayList<OneComment>>> getSMS() {
// Init
ArrayList<SmsMsg> smsMsgs = new ArrayList<SmsMsg>();
TreeSet<Integer> threadIds = new TreeSet<Integer>();
Uri mSmsinboxQueryUri = Uri.parse("content://sms");
Cursor cursor = _context.getContentResolver().query(
mSmsinboxQueryUri,
new String[] { "_id", "thread_id", "address", "date", "body",
"type" }, null, null, null);
String[] columns = new String[] { "address", "thread_id", "date",
"body", "type" };
if (cursor.getCount() …Run Code Online (Sandbox Code Playgroud) android android-contentresolver android-contentprovider android-contacts
对于我的地址簿中给定的号码,我需要查看号码是否启用了whatsapp.(我们的想法是选择SMS/WhatsApp来启动文本意图)
可以说,我在联系人下面有两个号码,而且我需要知道哪个号码启用了whatsapp.
Nexus 4上的"People"应用程序显示了两个联系人号码,还有一个下面有一个CONNECTIONS部分,它只显示了WhatsApp可能的联系方式.
有没有办法查找(如人们的应用程序如何)?