我的目標是僅向用戶顯示具有電話號碼的聯繫人,並讓用戶選擇我想本地存儲的少數聯繫人。僅在Android設備中使用ACTION_PICKT意圖顯示聯繫人
我在下面的方法中使用了各種選項來代替ContactsContract.Contacts.CONTENT_URI。但是,我收到很多聯繫人(很多都是垃圾郵件,只有電子郵件ID)。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contact_selector);
((Button)findViewById(R.id.btnphonecontactlist)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent contactIntent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(contactIntent, 1);
}
});
}
如果我通過ContactsContract.Contacts.CONTENT_URI作爲參數用於上述方法,並在下面的處理程序方法的情況下,字符串[]用於查詢方法作爲投影參數(其被示爲註釋),該方法失敗,並java.lang.IllegalArgumentException異常。如果我在下面的方法中傳遞null,那麼無論我選擇哪種聯繫方式,我都沒有找到任何與電話號碼或電子郵件相關的列。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(data != null)
{
Uri uri = data.getData();
if(uri != null)
{
Cursor c = null;
try
{
c = getContentResolver().query(uri, null
// new String[] {
//ContactsContract.CommonDataKinds.Phone.NUMBER,
//ContactsContract.CommonDataKinds.Phone.TYPE},
, null, null, null);
if(c != null && c.moveToFirst())
{
String number = c.getString(0);
String type = c.getString(1);
}
}
finally
{
if(c != null && !c.isClosed())
c.close();
}
}
}
}
有什麼辦法,只顯示聯繫人可見用戶通常當用戶進入電話簿,並具有電話號碼可用?
我試過通過stackoverflow和其他網站的所有線程,但找不到解決問題的任何解決方案,儘管許多人已經發布了這個問題。我沒有在Android平臺上工作太多,我可能錯過了一些小的細節,我相信必須有一個簡單的方法來實現這一點。
請提出建議。感謝你的幫助。
謝謝。
爲什麼我的ANS幫助? – 2013-03-01 09:49:05