我创建了一个替代应用程序,用于在 android 中创建新联系人。当我们创建联系人时它工作正常。
但是,当我们从通话记录中选择上下文菜单中的“创建联系人”来创建联系人时,我无法获取选择用于创建联系人的电话号码。
请帮我...
可能有点晚了,但这对我有用。
将此添加到您的 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){
}
希望这可以帮助 :)