android studio添加联系人
时间: 2024-05-31 10:06:00 浏览: 124
在 Android Studio 中添加联系人需要使用内容提供器(Content Provider)来实现。下面是一个简单的示例:
1. 在 `AndroidManifest.xml` 文件中添加联系人读取和写入权限:
```xml
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
```
2. 在布局文件中添加一个输入框和一个按钮:
```xml
<EditText
android:id="@+id/editTextName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Name"/>
<Button
android:id="@+id/buttonAddContact"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Add Contact"/>
```
3. 在 Activity 中获取输入框和按钮的引用,并为按钮添加点击事件:
```java
EditText editTextName = findViewById(R.id.editTextName);
Button buttonAddContact = findViewById(R.id.buttonAddContact);
buttonAddContact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = editTextName.getText().toString();
addContact(name);
}
});
```
4. 在点击事件处理函数中使用内容提供器添加联系人:
```java
private void addContact(String name) {
ArrayList<ContentProviderOperation> ops = new ArrayList<>();
ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.build());
ops.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());
try {
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
Toast.makeText(this, "Contact added successfully.", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, "Failed to add contact.", Toast.LENGTH_SHORT).show();
}
}
```
这样就可以在 Android Studio 中添加联系人了。
阅读全文