gpt4 book ai didi

java - 我们如何在不打开联系人应用程序本身的情况下将新联系人插入 Android 联系人中?

转载 作者:行者123 更新时间:2023-12-01 12:46:21 24 4
gpt4 key购买 nike

我有以下代码,我在其中将新联系人添加到我的联系人列表中。

    Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
intent.putExtra(ContactsContract.Intents.Insert.NAME, "John");
intent.putExtra(ContactsContract.Intents.Insert.PHONE, "1234");
int PICK_CONTACT = 100;
this.startActivityForResult(intent, PICK_CONTACT);

最后一行打开默认的 Android 应用程序,让我们添加新联系人,并在正确的部分填写“John”和“1234”。我想要的是我的应用程序甚至无需打开默认应用程序即可完成添加该联系人。理想情况下,这意味着以编程方式单击联系人应用程序上的完成按钮。这可能吗?如果是这样,怎么办?

最佳答案

这是我添加联系人的示例。它将联系人添加到设备联系人中,而无需打开默认联系人。

FirstName = FNBox.getText().toString();
LastName = LNBox.getText().toString();
PhoneNo = number;
ContactAdd Contact = new ContactAdd(FirstName,LastName,PhoneNo,getApplicationContext(),imageByteArray);
ArrayList<ContentProviderOperation> contacts = Contact.AddContact();
try {
ContentProviderResult[] res = getContentResolver().applyBatch(ContactsContract.AUTHORITY, contacts);
Log.d("myContacts", "contacts added");
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OperationApplicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

ContactAdd 指的是这个类...

import java.util.ArrayList;

import android.app.Activity;
import android.content.ContentProviderOperation;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.CommonDataKinds.StructuredName;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.RawContacts;
import android.util.Log;


public class ContactAdd extends Activity {

private String FirstName,LastName,PhoneNumber;
private Context mContext;
private byte[] photoByteArray = null;

public ContactAdd(String First,String Last,String Phone,Context context)
{
this.FirstName = First;
this.LastName = Last;
this.PhoneNumber = Phone;
this.mContext = context;
}

public ContactAdd(String First,String Last,String Phone,Context context,byte[] Photo)
{
this.FirstName = First;
this.LastName = Last;
this.PhoneNumber = Phone;
this.mContext = context;
this.photoByteArray = Photo;
}

public ArrayList<ContentProviderOperation> AddContact()
{
final ArrayList<ContentProviderOperation> contacts = new ArrayList<ContentProviderOperation>();
final int rawContactInsertIndex = contacts.size();
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences(mContext);
Log.d("AddMeNow", preference.getString("accountKey", null) + " "+preference.getString("emailKey", null));
// TODO Auto-generated method stub
contacts.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE, preference.getString("accountKey",null))
.withValue(RawContacts.ACCOUNT_NAME, preference.getString("emailKey",null)).build());

//Add Name
contacts.add(ContentProviderOperation
.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID,0 )
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.DISPLAY_NAME, FirstName+" "+LastName)
.build());


//Add Phone Number
contacts.add(ContentProviderOperation
.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID,
0 )
.withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
.withValue(Phone.NUMBER, PhoneNumber)
.withValue(Phone.TYPE, Phone.TYPE_MOBILE)
.build());

contacts.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Photo.PHOTO, photoByteArray).build());


return contacts;


}

}

关于java - 我们如何在不打开联系人应用程序本身的情况下将新联系人插入 Android 联系人中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24668221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com