Android 自動向手機添加聯繫人(測試數據用)



import android.content.ContentProviderOperation;java

import android.os.Bundle;android

import android.provider.ContactsContract;app

import android.support.v7.app.AppCompatActivity;dom

import android.util.Log;ide


import java.util.ArrayList;ui

import java.util.Random;orm


public class MainActivity extends AppCompatActivity {get

static  final String CHARACTERS="ABCDEFGHJIKLMNOPQRSTUVWXYZ1234567890";it

    @Overrideio

    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();

    }

}

相關文章
相關標籤/搜索