1. 程式人生 > >如何向android手機通訊錄中新增聯絡人

如何向android手機通訊錄中新增聯絡人

直接在手機的通訊錄的資料庫中新增列表

相關程式碼如下

package com.example.test;


import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.os.RemoteException;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;


import java.util.ArrayList;  


import android.content.ContentProviderOperation;  
import android.content.ContentProviderResult;  
import android.content.ContentResolver;  
import android.content.OperationApplicationException;
import android.net.Uri;  
import android.provider.ContactsContract;  
import android.test.AndroidTestCase;  
import android.util.Log; 




public class MainActivity extends ActionBarActivity {
private static final String TAG = "ContactsWriteTest";  
 
    //[content://com.android.contacts/raw_contacts]  
    private static final Uri RAW_CONTACTS_URI = ContactsContract.RawContacts.CONTENT_URI;  
    //[content://com.android.contacts/data]  
    private static final Uri DATA_URI = ContactsContract.Data.CONTENT_URI;  
      
    private static final String ACCOUNT_TYPE = ContactsContract.RawContacts.ACCOUNT_TYPE;  
    private static final String ACCOUNT_NAME = ContactsContract.RawContacts.ACCOUNT_NAME;  
      
    private static final String RAW_CONTACT_ID = ContactsContract.Data.RAW_CONTACT_ID;  
    private static final String MIMETYPE = ContactsContract.Data.MIMETYPE;  
      
    private static final String NAME_ITEM_TYPE = ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE;  
    private static final String DISPLAY_NAME = ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME;  
      
    private static final String PHONE_ITEM_TYPE = ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE;  
    private static final String PHONE_NUMBER = ContactsContract.CommonDataKinds.Phone.NUMBER;  
    private static final String PHONE_TYPE = ContactsContract.CommonDataKinds.Phone.TYPE;  
    private static final int PHONE_TYPE_HOME = ContactsContract.CommonDataKinds.Phone.TYPE_HOME;  
    private static final int PHONE_TYPE_MOBILE = ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE;  
      
    private static final String EMAIL_ITEM_TYPE = ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE;  
    private static final String EMAIL_DATA = ContactsContract.CommonDataKinds.Email.DATA;  
    private static final String EMAIL_TYPE = ContactsContract.CommonDataKinds.Email.TYPE;  
    private static final int EMAIL_TYPE_HOME = ContactsContract.CommonDataKinds.Email.TYPE_HOME;  
    private static final int EMAIL_TYPE_WORK = ContactsContract.CommonDataKinds.Email.TYPE_WORK;  
  
    private static final String AUTHORITY = ContactsContract.AUTHORITY;  

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button bt=(Button)findViewById(R.id.bt);
        
        
        bt.setOnClickListener(new View.OnClickListener() {  
            
            @Override  
            public void onClick(View v) {  
                // TODO Auto-generated method stub  
                Log.i("TEST", "button onClick");  
         TextView TextView1=(TextView)findViewById(R.id.view);
        ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>();  
        
        ContentProviderOperation operation = ContentProviderOperation.newInsert(RAW_CONTACTS_URI)  
                                    .withValue(ACCOUNT_TYPE, null)  
                                    .withValue(ACCOUNT_NAME, null)  
                                    .build();  
        operations.add(operation);  
  
        //新增聯絡人名稱操作  
        operation = ContentProviderOperation.newInsert(DATA_URI)  
                                    .withValueBackReference(RAW_CONTACT_ID, 0)  
                                    .withValue(MIMETYPE, NAME_ITEM_TYPE)  
                                    .withValue(DISPLAY_NAME, "Scott Liu")  
                                    .build();  
        operations.add(operation);  
  
        //新增家庭座機號碼  
        operation = ContentProviderOperation.newInsert(DATA_URI)  
                                    .withValueBackReference(RAW_CONTACT_ID, 0)  
                                    .withValue(MIMETYPE, PHONE_ITEM_TYPE)  
                                    .withValue(PHONE_TYPE, PHONE_TYPE_HOME)  
                                    .withValue(PHONE_NUMBER, "01034567890")  
                                    .build();  
        operations.add(operation);  
          
        //新增移動手機號碼  
        operation = ContentProviderOperation.newInsert(DATA_URI)  
                                    .withValueBackReference(RAW_CONTACT_ID, 0)  
                                    .withValue(MIMETYPE, PHONE_ITEM_TYPE)  
                                    .withValue(PHONE_TYPE, PHONE_TYPE_MOBILE)  
                                    .withValue(PHONE_NUMBER, "13534567890")  
                                    .build();  
        operations.add(operation);  
  
        //新增家庭郵箱  
        operation = ContentProviderOperation.newInsert(DATA_URI)  
                                    .withValueBackReference(RAW_CONTACT_ID, 0)  
                                    .withValue(MIMETYPE, EMAIL_ITEM_TYPE)  
                                    .withValue(EMAIL_TYPE, EMAIL_TYPE_HOME)  
                                    .withValue(EMAIL_DATA, "
[email protected]
")                                       .build();           operations.add(operation);              //新增工作郵箱           operation = ContentProviderOperation.newInsert(DATA_URI)                                       .withValueBackReference(RAW_CONTACT_ID, 0)                                       .withValue(MIMETYPE, EMAIL_ITEM_TYPE)                                       .withValue(EMAIL_TYPE, EMAIL_TYPE_WORK)                                       .withValue(EMAIL_DATA, "
[email protected]
")                                       .build();           operations.add(operation);                      ContentResolver resolver = getBaseContext().getContentResolver();           //批量執行,返回執行結果集           ContentProviderResult[] results = null; try { results = resolver.applyBatch(AUTHORITY, operations); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (OperationApplicationException e) { // TODO Auto-generated catch block e.printStackTrace(); }           for (ContentProviderResult result : results) {               Log.i(TAG, result.uri.toString());               TextView1.setText(result.uri.toString());         }               }           });                }     @Override     public boolean onCreateOptionsMenu(Menu menu) {         // Inflate the menu; this adds items to the action bar if it is present.         getMenuInflater().inflate(R.menu.main, menu);         return true;     }     @Override     public boolean onOptionsItemSelected(MenuItem item) {         // Handle action bar item clicks here. The action bar will         // automatically handle clicks on the Home/Up button, so long         // as you specify a parent activity in AndroidManifest.xml.         int id = item.getItemId();         if (id == R.id.action_settings) {             return true;         }         return super.onOptionsItemSelected(item);     } }

特別注意在開啟通訊錄的資料庫的許可權

 <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 

相關推薦

如何android手機通訊錄新增聯絡人

直接在手機的通訊錄的資料庫中新增列表 相關程式碼如下 package com.example.test; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import

android 獲取通訊錄同一聯絡人的多個號碼

public static void fetchContact(Context context) { List<ContactsBean> list = new ArrayList<>(); ContentResolver cr = context.getC

通訊錄新增聯絡人統計功能

packages/apps/Contacts/src/com/android/contacts/list/DefaultContactBrowseListFragment.java --- a/alps/packages/apps/Contacts/src/com/andr

android通訊錄選擇聯絡人並讀取號碼

1.Manifest檔案中新增許可權配置: <uses-permission android:name="android.permission.WRITE_CONTACTS"/> <uses-permission android:name

Android訪問通訊錄新增聯絡人

package com.example.test; import java.util.ArrayList; import android.content.ContentProviderOperation;

Android 手機通訊錄開發時給聯絡人新增頭像失敗的坑

在給聯絡人新增頭像程式碼 Bitmap photo = ...; // 將 Bitmap 轉為 byte[] byte[] bytes = LshImageUtils.bitmap2Bytes(photo); // 新增聯絡人, 插入名字和頭像 (LshC

android studio和github進行關聯和如何README.md檔案新增圖片說明

今天試了一下,在github裡面提交了簡單的工程檔案。挺好用的。 github越來越多的開發者參與,以後會經常參與其中。廢話不多說,幹活來啦! 如何使AS和github關聯 現在android開發基本都是使用android studio.在AS中,可以

Android手機通訊錄的讀取、新增、刪除、查詢

Android聯絡人資料庫檔案(contact2.db) 有研究過手機通訊錄資料的童鞋肯定知道一個數據庫檔案:目前是contact2.db(哥的手機是Android4.04的) 在此路徑下可以找到:/data/data/com.android.providers.c

Android通訊錄讀取系統聯絡人

第一步、先建立一個Contacts.java實體類,用於表示聯絡人。package com.t20.contacts.entity; import java.io.Serializable; public class Contacts implements Seriali

Android 手機通訊錄修改聯絡人失敗的坑

一般我們新增聯絡人的時候,是通過查詢 raw_contacts 表的 _id 欄位,獲取最末尾的 _id 值 +1 便是該表中需要新增的 contact_id 值。 一般情況下,contact_id 的值應該和 _id 的值是相等的。但是在第三方應該的大量

Android學習--動態SPinner控制元件新增資料

android中的spinner動態載入資料: GroupPurchase.java Java程式碼   package jftt.txlong;   import java.util.ArrayList;   import java.util.List;   import android.app.A

emWinLISTVIEW單元格新增資訊

如果LISTVIEW原為空表,在向單元格中新增資訊前,需先新增行:LISTVIEW_AddRow(hItem, NULL); 然後再使用函式void             LISTVIEW_SetItemText   &

Android在activity新增背景

android:background="@drawable/ming" 這個是我們在佈局檔案中新增的,就是下面的其中一條 xmlns:tools="http://schemas.android.co

caffe的docker新增opencv並儲存

首先學會安裝opencv,因為caffe的docker是沒有源的,所以需要手動新增進去 echo "deb http://de.archive.ubuntu.com/ubuntu precise main restricted universe" | sudo tee

如何Github README.md新增圖片

1.先把圖片上傳到你的專案中;然後在github網站上按路徑開啟圖片,如下開啟的圖片連結: 2.複製圖片的地址 然後在README.md寫上: ![這裡隨便寫文字](你剛複製的圖片路徑) 注意  上面的感嘆號和中括號和小括號之間不能有空格(都是英文狀態下的)

Apple允許TestFlight測試服務新增最多1000名外部測試者

Apple已經宣佈 其旗下的TestFlight Beta測試服務現在允許開發者通過iTunesConnect新增最多1000名外部測試者。 Apple起初是在WWDC 2014大會上宣佈他們從 Burstly收購 的TestFlight會融合到iOS開發工具套件中。

動態連結庫新增類和資源-並訪問動態連結庫的類和資源

1#define  EXPORTDLL _declspec(dllimport); //定義一個巨集EXPORTDLL class CShowDlg{ public:  virtual void _stdcall ShowNote(char *pszText)//客戶端想要訪

maven web專案新增spring mvc依賴的jar包

使用maven進行專案管理的優勢之一就是maven可以幫我們管理專案建設中所使用的jar包,我們只需要在maven專案下的pox.xml中向dependencies下新增所需要的jar包資訊(包括groupId、artifactid、version)即可,這

陣列的json新增資料

1、往資料裡新增json字串var arr = [] var json = {"name":"caocao","sex":"男"} arr.push(json) console.log(arr)結果:[{"name":"caocao","sex":"男"}]2、往陣列的jso

關於js動態下拉列表新增資料

在網上找的,經過試驗還不錯,反正很適合我,直接。 大體的思路就是: var objSelect = document.getElementById("leixingwx");//獲得select標籤物