0

我创建了一个替代应用程序,用于在 android 中创建新联系人。当我们创建联系人时它工作正常。

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

请帮我...

4

1 回答 1

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){

    }

希望这可以帮助 :)

于 2013-10-04T06:15:31.117 回答