안녕하세요.

import android.provider.Contacts; 와 import android.provider.Contacts.People; 의 Contacts 부터 줄 그어지는 것 처리하는 문제와

주소록에서 상세화면 콜하는 intent 사용법에 대해서 질문드려요!

주소록에서 Content Provider 이용해서 읽어온 후에 리스트뷰로 뿌려주는걸 만들고 있는데요.

contacts =  Contacts.People.CONTENT_URI;
  cursor = managedQuery(contacts, projection1, null, null, Contacts.People.NAME + " ASC");

이런식으로 불러와서 리스트에 뿌려주고 있는데요.

첫번째 질문은 위 소스에서 Contacts.People 부분이 가운데 줄 그어져서 보이네요.

현재 버전에서는 없어진 부분이라 그렇게 뜬다던데 이 부분을 없애려면 어떻게 해야할까요?

그냥 contacts =  CONTENT_URI; 이렇게 쓰면 당연히 에러가 나더군요;;;;


두번째 질문으로 intent 이용해서 주소록 띄울때

C:\Users\pc56\Documents\aa.java
 
C:\Users\pc56\Documents\aa.javaintent 부분
 private void viewConversation(int position ){
  cursor.moveToPosition(position);
  String sTableId = cursor.getString(cursor.getColumnIndex(Contacts.People._ID));
  long lTableId = cursor.getLong(cursor.getColumnIndex(Contacts.People._ID));
  
  Log.i("sTableId", sTableId);
  //MakeDialog.showOneBtn(AddressList.this, R.drawable.icon, "ConversationView 이동", sTableId + "준비중입니다.");
  
  Intent i = new Intent(Intent.ACTION_PICK);
  i.setData(Uri.parse("content://contacts/lookup/" + lTableId));
  startActivity(i);
  //Uri mContact = ContentUris.withAppendedId(People.CONTENT_URI, lTableId );
C:\Users\pc56\Documents\aa.javaintent 부분
  
   }





이렇게 값을 주면 주소록 리스트가 뜨는데요. 

주소록 리스트가 아니라 

안드로이드 기본 주소록 리스트에서 한 명 클릭하면 휴대전화로 전화하기, 이메일 보내기 등이 뜨는 창을

띄우고 싶습니다.

  i.setData(Uri.parse("content://contacts/lookup/" +  _id값));
  i.setData(Uri.parse("content://contacts/people/" +  _id값));

둘 다 안먹히네요.

lookup 은 디버깅걸고 안드로이드 기본 주소록에서 클릭해가면서 보니까 이 부분을 바꾸면 되는건가 싶어서

시도해본 부분입니다.

발생하는 에러는
04-08 08:26:15.827: ERROR/DatabaseUtils(100): Writing exception to parcel
04-08 08:26:15.827: ERROR/DatabaseUtils(100): java.lang.IllegalArgumentException: Unknown URI
04-08 08:26:15.827: ERROR/DatabaseUtils(100):     at com.android.providers.contacts.LegacyApiSupport.getType(LegacyApiSupport.java:2035)
04-08 08:26:15.827: ERROR/DatabaseUtils(100):     at com.android.providers.contacts.ContactsProvider2.getType(ContactsProvider2.java:4787)
04-08 08:26:15.827: ERROR/DatabaseUtils(100):     at android.content.ContentProvider$Transport.getType(ContentProvider.java:144)
04-08 08:26:15.827: ERROR/DatabaseUtils(100):     at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:127)
04-08 08:26:15.827: ERROR/DatabaseUtils(100):     at android.os.Binder.execTransact(Binder.java:287)
04-08 08:26:15.827: ERROR/DatabaseUtils(100):     at dalvik.system.NativeStart.run(Native Method)
04-08 08:26:15.857: INFO/ActivityManager(52): Starting activity: Intent { act=android.intent.action.PICK dat=content://contacts/lookup/2 }
04-08 08:26:15.866: DEBUG/AndroidRuntime(277): Shutting down VM
04-08 08:26:15.866: WARN/dalvikvm(277): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
04-08 08:26:15.866: ERROR/AndroidRuntime(277): Uncaught handler: thread main exiting due to uncaught exception
04-08 08:26:15.887: ERROR/AndroidRuntime(277): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.PICK dat=content://contacts/lookup/2 }
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at android.app.Activity.startActivityFromChild(Activity.java:2989)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at android.app.Activity.startActivityForResult(Activity.java:2769)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at android.app.Activity.startActivity(Activity.java:2855)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at kr.co.hatsal.AddressList.viewConversation(AddressList.java:193)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at kr.co.hatsal.AddressList.onListItemClick(AddressList.java:180)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at android.app.ListActivity$2.onItemClick(ListActivity.java:312)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at android.widget.AdapterView.performItemClick(AdapterView.java:284)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at android.widget.ListView.performItemClick(ListView.java:3285)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:1640)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at android.os.Handler.handleCallback(Handler.java:587)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at android.os.Looper.loop(Looper.java:123)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at android.app.ActivityThread.main(ActivityThread.java:4338)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at java.lang.reflect.Method.invokeNative(Native Method)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at java.lang.reflect.Method.invoke(Method.java:521)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
04-08 08:26:15.887: ERROR/AndroidRuntime(277):     at dalvik.system.NativeStart.main(Native Method)

에러입니다.

한 명에 해당하는 안드로이드 주소록 상세화면을 어떻게 띄우는지

아시거나 어디서 확인할 수 있는지 아시는 분은 꼭 좀 알려주세요 ㅜ.ㅜ

글을 읽어주시는 모든 분들 감사드리고 항상 행복하세요.

ps. 헉 제가 code highlighter를 처음써봐서 이상하게 올라갔네요. 지우는 법도 모르겠네요. ㅜ.ㅜ