package com.example.project;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import android.Manifest;
import android.content.ContentProviderOperation;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.OperationApplicationException;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.RemoteException;
import android.provider.ContactsContract;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1=(Button)findViewById(R.id.button_1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clickButton();
}
});
}
private void clickButton(){
//判断是否已获得权限
if(ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_CONTACTS)!= PackageManager.PERMISSION_GRANTED){
//申请权限
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_CONTACTS},1);
}else{
//添加联系人
writeContacts();
}
}
private void writeContacts(){
String nameArray[] = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r"
,"s","t","u","v","w","x","y","z"};
//利用随机数生成联系人姓名
String username="";
Random r=new Random();
int lenth=r.nextInt(10);
for(int i=0;i<lenth;i++){
int ran=r.nextInt(26);
username = username + nameArray[ran];
}
//利用随机数生成电话号码
String phonenumber="";
for(int i=0;i<11;i++){
int ranm=r.nextInt(10);
String sranm=Integer.toString(ranm);
phonenumber = phonenumber + sranm;
}
ContentResolver resolver=getContentResolver();
ContentValues values=new ContentValues();
Uri uri=resolver.insert(ContactsContract.RawContacts.CONTENT_URI,values);
if(uri==null){
return;
}
long rawContactId= ContentUris.parseId(uri);
values.clear();
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
//mimetype
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
//联系人姓名
values.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, username);
//插入到data表
resolver.insert(ContactsContract.Data.CONTENT_URI, values);
//插入手机号
values.clear();
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
//手机号
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, phonenumber);
values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);
resolver.insert(ContactsContract.Data.CONTENT_URI, values);
Toast.makeText(this,"添加成功"+"联系人:"+username+"电话:"+phonenumber,Toast.LENGTH_LONG).show();
}
//申请权限
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults){
switch (requestCode){
case 1:
if(grantResults.length>0 && grantResults[0]==PackageManager.PERMISSION_GRANTED){
writeContacts();
}else {
Toast.makeText(this,"未授权",Toast.LENGTH_SHORT).show();
}
}
}
}
需要进行运行时权限处理的9组24个权限如下: