本文主要是介绍开发一个Android App,在项目中完成添加联系人的功能,通过ContentResolver向系统中添加联系人信息。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
实现步骤:
(1)添加动态联系人的权限。
(2)创建Activity和布局文件,添加输入框和按钮等控件。
(3)完成添加联系人的功能。
代码文件如下:
activity_main.xml文件
<!-- activity_main.xml -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><EditTextandroid:id="@+id/editTextName"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="姓名" /><EditTextandroid:id="@+id/editTextPhone"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/editTextName"android:layout_marginTop="16dp"android:hint="电话" /><Buttonandroid:id="@+id/buttonAddContact"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/editTextPhone"android:layout_marginTop="16dp"android:text="添加" /></RelativeLayout>
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;@Overrideprotected 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() {@Overridepublic 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<ContentProviderOperation> 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();}}
}
这篇关于开发一个Android App,在项目中完成添加联系人的功能,通过ContentResolver向系统中添加联系人信息。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!