开发一个Android App,在项目中完成添加联系人的功能,通过ContentResolver向系统中添加联系人信息。
•
移动开发
实现步骤:
(1)添加动态联系人的权限。
(2)创建Activity和布局文件,添加输入框和按钮等控件。
(3)完成添加联系人的功能。
代码文件如下:
activity_main.xml文件
MainActivity主程序的代码如下:
package com.qcxy.lesson6;
import android.content.ContentProviderOperation;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private EditText editTextName, editTextPhone;
private Button buttonAddContact;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextName = findViewById(R.id.editTextName);
editTextPhone = findViewById(R.id.editTextPhone);
buttonAddContact = findViewById(R.id.buttonAddContact);
buttonAddContact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addContact();
}
});
}
private void addContact() {
String name = editTextName.getText().toString().trim();
String phone = editTextPhone.getText().toString().trim();
if (name.isEmpty() || phone.isEmpty()) {
Toast.makeText(this, "Name and Phone cannot be empty", Toast.LENGTH_SHORT).show();
return;
}
ContentResolver contentResolver = getContentResolver();
ArrayList operations = new ArrayList();
// 添加姓名
operations.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.build());
operations.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name)
.build());
// 添加电话号码
operations.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phone)
.withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
.build());
try {
contentResolver.applyBatch(ContactsContract.AUTHORITY, operations);
Toast.makeText(this, "Contact added successfully", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, "Error adding contact", Toast.LENGTH_SHORT).show();
}
}
}
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/613de9b441.html
