Android 自动向手机添加联系人(测试数据用)

原创
2015/11/23 10:13
阅读数 784



import android.content.ContentProviderOperation;

import android.os.Bundle;

import android.provider.ContactsContract;

import android.support.v7.app.AppCompatActivity;

import android.util.Log;


import java.util.ArrayList;

import java.util.Random;


public class MainActivity extends AppCompatActivity {

static  final String CHARACTERS="ABCDEFGHJIKLMNOPQRSTUVWXYZ1234567890";

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        startThread();

      //  test1();

    }

//    public void test1(){

//        System.err.println("");

////        char[] str = "".toCharArray();

////        for (char ch:str ) {

////            System.err.println("CH:" + ch + " "  + String.valueOf(ch).matches("[a-zA-Z]"));

////        }

//

//    }

    public void startThread(){

        for (int i = 0; i <4 ; i++) {

            moreThread(2000*i);

        }


    }

    private void addToPhoneContact(String number, String name) {

        try {

            ArrayList<ContentProviderOperation> ops = new ArrayList<>();

            ContentProviderOperation.Builder builder = ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI);

            builder.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null);

            builder.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null);

            ops.add(builder.build());


            // Name


            builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);

            builder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0);

            builder.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);

            builder.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name);

            ops.add(builder.build());


            // Number

            builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);

            builder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0);

            builder.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);

            builder.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER,  number);

            builder.withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);

            ops.add(builder.build());


            getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);


        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    public  String randomString(int length){

        char[] text=new char[length];

        Random random=new Random();

        for (int  i= 0; i < length ; i++) {

            text[i]=CHARACTERS.charAt(random.nextInt(CHARACTERS.length()));


        }

        return new String(text);


    }

    public void moreThread(final int startNumber){

        new Thread(new Runnable() {

            @Override

            public void run() {

                for (int i = startNumber; i <startNumber+2000 ; i++) {

                    addToPhoneContact("8765" + String.format("%04d", i), randomString(4));


                }

                for (int i = startNumber; i <startNumber+2000 ; i++) {

                    addToPhoneContact("7765" + String.format("%04d", i), randomString(4));

                }

                Log.e("aa","finish5");

            }

        }).start();

    }

}


展开阅读全文
加载中

作者的其它热门文章

打赏
0
1 收藏
分享
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部