相关疑难解决方法(0)

从android联系人选择器获取联系信息

我正在尝试拨打联系人选择器,将人名,电话和电子邮件发送到字符串中,并使用意图将其发送到另一个活动.到目前为止,这工作:

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);  
startActivityForResult(intent, 1);  

// ...

@Override  
public void onActivityResult(int reqCode, int resultCode, Intent data) {  
    super.onActivityResult(reqCode, resultCode, data);  
    if (resultCode == Activity.RESULT_OK) {  
        Uri contactData = data.getData();  
        Cursor c =  managedQuery(contactData, null, null, null, null);  
        if (c.moveToFirst()) {  
            String name = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));  
            Intent intent = new Intent(CurrentActivity.this, NewActivity.class);  
            intent.putExtra("name", name);  
            startActivityForResult(intent, 0);  
        }  
    }  
}
Run Code Online (Sandbox Code Playgroud)

但如果我加入:

String number = c.getString(c.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
Run Code Online (Sandbox Code Playgroud)

它强行关闭

也许是获得他们号码的另一种方式?

android contacts google-contacts-api contactscontract

36
推荐指数
1
解决办法
4万
查看次数

从Android中的URI检索联系电话号码

在我从内置活动中检索到他们的ID号码后,我正在尝试获取联系人的电话号码.但是,每当我在下面的代码中使用光标查询数据库时 - 即使有我选择的联系人的手机号码,我也会返回零行.

任何人都可以指出我更好的方向或显示如何获取联系人的电话号码获得他们的用户ID后的一个例子?

我的代码:

    private Runnable getSMSRunnable() {
    return new Runnable() {
    public void run() {
    Intent i = new Intent(Intent.ACTION_PICK,
      ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
    startActivityForResult(i, CONTACTS_REQUEST_CODE);
   }
  };
 }
Run Code Online (Sandbox Code Playgroud)

返回Log输出

content://com.android.contacts/data/6802
Run Code Online (Sandbox Code Playgroud)

从中我将ID(6802)传递给一个方法,该方法旨在从具有给定类型的ID返回电话号码(在本例中为ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)

public static String getContactPhoneNumberByPhoneType(Context context, long contactId, int type) {
    String phoneNumber = null;

    String[] whereArgs = new String[] { String.valueOf(contactId), String.valueOf(type) };

    Log.d(TAG, String.valueOf(contactId));

    Cursor cursor = context.getContentResolver().query(
            ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
            null,
            ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ? and "
                    + ContactsContract.CommonDataKinds.Phone.TYPE + " = ?", whereArgs, null);

    int phoneNumberIndex = …
Run Code Online (Sandbox Code Playgroud)

android contactscontract

9
推荐指数
1
解决办法
3万
查看次数