android - 如何在 Android 中显示联系人

标签 android

//Look up a contact by phone number and display it.

Intent intent = new Intent(ContactsContract.Intents.SHOW_OR_CREATE_CONTACT);
intent.setData(Uri.fromParts("tel", vc.cellphone, null));
startActivity(intent);

此代码按预期工作。但是,如果有多个联系人使用该号码,我们就会崩溃。 当崩溃发生时。 Logcat 说:

04-04 05:26:34.764: INFO/ActivityManager(60): Starting activity: Intent { act=com.android.contacts.action.SHOW_OR_CREATE_CONTACT dat=tel:078551212 cmp=com.android.contacts/.ui.ShowOrCreateActivity }
04-04 05:26:35.834: INFO/ActivityManager(60): Starting activity: Intent { act=android.intent.action.SEARCH cmp=com.android.contacts/.ContactsListActivity (has extras) }
04-04 05:26:36.064: INFO/ContactsListActivity(276): Called with action: android.intent.action.SEARCH
04-04 05:26:36.804: INFO/ActivityManager(60): Displayed activity com.android.contacts/.ui.ShowOrCreateActivity: 1999 ms (total 1999 ms)
04-04 05:26:36.814: INFO/ActivityManager(60): Displayed activity com.android.contacts/.ContactsListActivity: 858 ms (total 858 ms)
04-04 05:26:43.153: ERROR/CursorWindow(276): Bad request for field slot 0,6. numRows = 2, numColumns = 6
04-04 05:26:43.173: DEBUG/AndroidRuntime(276): Shutting down VM
04-04 05:26:43.173: WARN/dalvikvm(276): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
04-04 05:26:43.183: ERROR/AndroidRuntime(276): Uncaught handler: thread main exiting due to uncaught exception
04-04 05:26:43.223: ERROR/AndroidRuntime(276): java.lang.IllegalStateException: get field slot from row 0 col 6 failed
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at android.database.CursorWindow.getString_native(Native Method)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at android.database.CursorWindow.getString(CursorWindow.java:329)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:49)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at android.database.CursorWrapper.getString(CursorWrapper.java:135)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at com.android.contacts.ContactsListActivity.getContactUri(ContactsListActivity.java:1564)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at com.android.contacts.ContactsListActivity.getSelectedUri(ContactsListActivity.java:1598)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at com.android.contacts.ContactsListActivity.onListItemClick(ContactsListActivity.java:1255)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at android.app.ListActivity$2.onItemClick(ListActivity.java:312)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at android.widget.AdapterView.performItemClick(AdapterView.java:284)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at android.widget.ListView.performItemClick(ListView.java:3285)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:1640)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at android.os.Handler.handleCallback(Handler.java:587)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at android.os.Looper.loop(Looper.java:123)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at android.app.ActivityThread.main(ActivityThread.java:4363)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at java.lang.reflect.Method.invokeNative(Native Method)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at java.lang.reflect.Method.invoke(Method.java:521)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
04-04 05:26:43.223: ERROR/AndroidRuntime(276):     at dalvik.system.NativeStart.main(Native Method)

最佳答案

问题更新后,这个答案的大部分变得无关紧要,但这些链接可能对其他有联系人问题的人仍然有用,所以我决定保留这些而不是删除答案:


SO 中的问答链接:

How can I launch the 'Add Contact' activity in android

How to call Android contacts list?

Launching external application from my app

这正是您的问题:Android - Show list of contacts with same phone number . DEzra 提供了一个答案,建议使用“Android content provider api 结合 SQL 查询”


Android API 链接:

http://developer.android.com/reference/android/content/Intent.html

http://developer.android.com/reference/android/provider/ContactsContract.html

关于android - 如何在 Android 中显示联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5534545/

相关文章:

javascript - eclipse:如何在现有 Android 项目上启用 JavaScript 验证

android - Xamarin:Firebase.Firestore.FieldValue 不包含 ArrayUnion 的定义

Android Gradle : Creating a library project and using it in a project

Android PrintedPdfDocument 多页 PDF 原因致命信号 11 (SIGSEGV)

android - 使用 mockito 测试使用上下文的函数

android - '&'字符的SAX解析

java - 改造将自定义 header 添加为 token - java

java - Spinner Widget 将不会显示所选文本

android - FileObserver 只被调用一次

android - 在 ScrollView 上启用缩放