android手機通訊錄備份還原代碼

來源:互聯網
上載者:User

最近想寫段android程式玩玩。

開發環境 eclipse ,android2.2

開發環境搭建

1.先安裝jdk

2.下載安裝eclipse

3.下載安裝android sdk

4.安裝eclipse外掛程式  adt

5.配置 Window > Preferences 中的android sdk路徑

6.建立 AVD

 

實現方法很簡單

1.把通訊錄中的連絡人,電話號碼儲存到txt檔案中完成備份。

2.讀取txt檔案,匯入到通訊錄完成還原。

 

具體代碼

1.添加 通訊錄讀寫權限,儲存卡寫入權限

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

2.寫檔案代碼

         File saveFile=new File("/sdcard/test.txt");
                FileOutputStream outStream;
try {
outStream = new FileOutputStream(saveFile);
       outStream.write(str.getBytes());
       outStream.close();
} catch (Exception e) {

setTitle(e.toString());

3.取通訊錄連絡人

     str="";
       Cursor cur = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);  
       if (cur.moveToFirst()) {  
           int idColumn  = cur.getColumnIndex(ContactsContract.Contacts._ID);  
           int displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);  
           do {  
              String contactId = cur.getString(idColumn);  
              String disPlayName = cur.getString(displayNameColumn);  
              str+=disPlayName;
              int phoneCount = cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));  
              if(phoneCount>0){  
                  Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = " + contactId, null, null);
                  int i=0;
                  String phoneNumber;
                  if(phones.moveToFirst()){  
                      do{  
                       i++;
                          phoneNumber= phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                          if(i==1)
                          str=str+","+phoneNumber;
                          System.out.println(phoneNumber);  
                      }while(phones.moveToNext());  
                  }  
              }  
              str+="\r\n";
              } while (cur.moveToNext());  
       }  
       }  

4.讀檔案代碼

         try {
              File file = new File("/sdcard/test.txt");
            FileInputStream inStream = new FileInputStream(file);
          ByteArrayOutputStream outStream = new ByteArrayOutputStream();
          byte[] buffer = new byte[1024*5];
          int length = -1;
          while((length = inStream.read(buffer)) != -1 ){
           outStream.write(buffer, 0, length);
          }
          outStream.close();
          inStream.close();
          String txt= outStream.toString();

   } catch (IOException e){
             setTitle(e.toString());
         }

5.寫通訊錄

     ContentValues values = new ContentValues();
    Uri rawContactUri = getContentResolver().insert(RawContacts.CONTENT_URI, values);
    long rawContactId = ContentUris.parseId(rawContactUri);
    values.clear();
    values.put(Data.RAW_CONTACT_ID, rawContactId);
    values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
    values.put(StructuredName.GIVEN_NAME, name);
    getContentResolver().insert(Data.CONTENT_URI, values);
     values.clear();
    values.put(Data.RAW_CONTACT_ID, rawContactId);
    values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
    values.put(Phone.NUMBER, num);
    values.put(Phone.TYPE, Phone.TYPE_HOME);
    getContentResolver().insert(Data.CONTENT_URI, values);

如果你發現有什麼不合理的,需要改進的地方,或者你有什麼更好的實現方法郵件聯絡328452421@qq.com(qq常年不線上,郵件聯絡) 朱曉
。相互交流 謝謝

 

源碼 http://download.csdn.net/detail/xiaoxiao108/3741045

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.