1
我使用的是谷歌示例https://developer.android.com/guide/components/intents-common.html 可正常工作以使用以下代碼啓動聯繫人瀏覽器。Google聯繫人問題示例「選擇特定聯繫人數據」
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(intent, PHONE_ACTIVITY);
}
我選擇一個聯繫人和活動退出,並調用我的onActivityResult()
然而,當我使用示例代碼從它拋出的意圖和非法柱異常數據1的結果,當它到達查詢的最後一行()
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case (PHONE_ACTIVITY): {
if (resultCode == Activity.RESULT_OK) {
Uri contactUri = data.getData();
String[] projection = new String[]{CommonDataKinds.Phone.NUMBER};
Cursor cursor = getContentResolver().query(contactUri, projection,
null, null, null);
}}}}
我不知道什麼是錯的。數據在Uri中,但是我得到了下面的堆棧轉儲。
11-04 19:24:01.711: E/AndroidRuntime(5790): FATAL EXCEPTION: main
11-04 19:24:01.711: E/AndroidRuntime(5790): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://com.android.contacts/contacts/lookup/2942i5ae4d5758914f9df.3247i232/225 flg=0x1 }} to activity {}: java.lang.IllegalArgumentException: Invalid column data1
11-04 19:24:01.711: E/AndroidRuntime(5790): at android.app.ActivityThread.deliverResults(ActivityThread.java:3322)
11-04 19:24:01.711: E/AndroidRuntime(5790): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3365)
11-04 19:24:01.711: E/AndroidRuntime(5790): at android.app.ActivityThread.access$1200(ActivityThread.java:141)
11-04 19:24:01.711: E/AndroidRuntime(5790): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1315)
11-04 19:24:01.711: E/AndroidRuntime(5790): at android.os.Handler.dispatchMessage(Handler.java:99)
11-04 19:24:01.711: E/AndroidRuntime(5790): at android.os.Looper.loop(Looper.java:137)
11-04 19:24:01.711: E/AndroidRuntime(5790): at android.app.ActivityThread.main(ActivityThread.java:5059)
11-04 19:24:01.711: E/AndroidRuntime(5790): at java.lang.reflect.Method.invokeNative(Native Method)
11-04 19:24:01.711: E/AndroidRuntime(5790): at java.lang.reflect.Method.invoke(Method.java:511)
11-04 19:24:01.711: E/AndroidRuntime(5790): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
11-04 19:24:01.711: E/AndroidRuntime(5790): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
11-04 19:24:01.711: E/AndroidRuntime(5790): at dalvik.system.NativeStart.main(Native Method)
11-04 19:24:01.711: E/AndroidRuntime(5790): Caused by: java.lang.IllegalArgumentException: Invalid column data1
11-04 19:24:01.711: E/AndroidRuntime(5790): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:170)
11-04 19:24:01.711: E/AndroidRuntime(5790): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140)
11-04 19:24:01.711: E/AndroidRuntime(5790): at android.content.ContentProviderProxy.query(ContentProviderNative.java:374)
11-04 19:24:01.711: E/AndroidRuntime(5790): at android.content.ContentResolver.query(ContentResolver.java:370)
11-04 19:24:01.711: E/AndroidRuntime(5790): at android.content.ContentResolver.query(ContentResolver.java:313)
11-04 19:24:01.711: E/AndroidRuntime(5790): at
11-04 19:24:01.711: E/AndroidRuntime(5790): at android.app.Activity.dispatchActivityResult(Activity.java:5242)
11-04 19:24:01.711: E/AndroidRuntime(5790): at android.app.ActivityThread.deliverResults(ActivityThread.java:3318)
11-04 19:24:01.711: E/AndroidRuntime(5790): ... 11 more