创建联系人时从通话记录中获取号码

时间:2013-05-10 15:01:47

标签: android contacts calllog

我创建了另一个用于在Android中创建新联系人的应用程序。当我们创建联系人时,它可以正常工作。

但是当我们在上下文菜单中选择“创建联系人”的通话记录创建联系人时,我无法获得选择用于创建联系人的电话号码。

Plz帮助我......

1 个答案:

答案 0 :(得分:0)

可能有点迟了但这对我有用。

在你的android中添加这个 `                              

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter android:label="Edit/Add Property/Requirement">
              <action android:name="android.intent.action.EDIT" />
              <category android:name="android.intent.category.DEFAULT" />
              <data android:mimeType="vnd.android.cursor.item/person" android:host="contacts" />
              <data android:mimeType="vnd.android.cursor.item/contact" android:host="com.android.contacts" />
              <data android:mimeType="vnd.android.cursor.item/raw_contact" android:host="com.android.contacts" />
          </intent-filter>
        <intent-filter android:label="Add Property/Requirement">
            <action android:name="android.intent.action.INSERT" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.dir/person" />
            <data android:mimeType="vnd.android.cursor.dir/contact" />
            <data android:mimeType="vnd.android.cursor.dir/raw_contact" />
        </intent-filter>
    </activity>`

此活动将是创建联系人的活动。在活动内部,使用此代码捕获电话号码

Intent intent = getIntent();
    try{
        Uri uri = intent.getData();
        if (uri.toString().endsWith("contacts")) // new contact
        {
            phoneNumber = intent
                    .getStringExtra(ContactsContract.Intents.Insert.PHONE);
        }
        else{
            ContactID = ""+ContentUris.parseId(uri);
            phoneNumber = intent
                    .getStringExtra(ContactsContract.Intents.Insert.PHONE);
        }
    }
    catch(Exception E){

    }

希望这会有所帮助:)