Android中聯絡人的操作(讀取和寫入聯絡人)
瞭解了ContentProvider之後,我們可以嘗試來操作手機中的聯絡人。
這個操作是非常常用的,那麼首先我們要了解聯絡人在手機資料庫中是如何儲存的。
聯絡人中,有三張表比較關鍵raw_contact,data.minetype.
下面的程式碼則是讀取和寫入聯絡人。
public class TestContact extends AndroidTestCase {
public void getAllContactInfo() throws Exception{
String rawbase = "content://com.android.contacts/raw_contacts";
String database = "content://com.android.contacts/data";
Cursor cursor = getContext().getContentResolver().query(Uri.parse(rawbase), null, null, null, null);
while (cursor.moveToNext()) {
String id = cursor.getString( cursor.getColumnIndex("_id"));
System.out.println("id ="+ id);
Cursor datacursor = getContext().getContentResolver().query(Uri.parse(database), null, "raw_contact_id=?", new String[]{id}, null);
while (datacursor.moveToNext()) {
//看看data表中有哪些列名
// String[] names = datacursor.getColumnNames();
// for(int i =0;i<names.length;i++){
// System.out.println(names[i]);
// }
String type = datacursor.getString(datacursor.getColumnIndex("mimetype"));
System.out.println(type);
//取出郵箱姓名和電話號碼三種資料
if("vnd.android.cursor.item/email_v2".equals(type)){
String data1 = datacursor.getString( datacursor.getColumnIndex("data1"));
System.out.println("郵箱 "+ data1);
}else if("vnd.android.cursor.item/name".equals(type)){
String data1 = datacursor.getString( datacursor.getColumnIndex("data1"));
System.out.println("姓名 "+ data1);
}else if("vnd.android.cursor.item/phone_v2".equals(type)){
String data1 = datacursor.getString( datacursor.getColumnIndex("data1"));
System.out.println("電話號碼 "+ data1);
}
}
datacursor.close();
}
cursor.close();
}
//寫入聯絡人
public void writeContact() throws Exception{
String rawbase = "content://com.android.contacts/raw_contacts";
ContentValues values = new ContentValues();
Uri uri = getContext().getContentResolver().insert(Uri.parse(rawbase), values);
//返回的raw_contact 表中的_id
long id = ContentUris.parseId(uri);
String database = "content://com.android.contacts/data";
ContentValues nameValues = new ContentValues();
nameValues.put("mimetype", "vnd.android.cursor.item/name");
nameValues.put("data1", "wangwu");
nameValues.put("raw_contact_id", id);
getContext().getContentResolver().insert(Uri.parse(database), nameValues);
ContentValues phoneValues = new ContentValues();
phoneValues.put("mimetype", "vnd.android.cursor.item/phone_v2");
phoneValues.put("data1", "999999");
phoneValues.put("raw_contact_id", id);
getContext().getContentResolver().insert(Uri.parse(database), phoneValues);
ContentValues emailValues = new ContentValues();
emailValues.put("mimetype", "vnd.android.cursor.item/email_v2");
emailValues.put("data1", " [email protected]");
emailValues.put("raw_contact_id", id);
getContext().getContentResolver().insert(Uri.parse(database), emailValues);
}
}
相關推薦
Android中聯絡人的操作(讀取和寫入聯絡人)
瞭解了ContentProvider之後,我們可以嘗試來操作手機中的聯絡人。 這個操作是非常常用的,那麼首先我們要了解聯絡人在手機資料庫中是如何儲存的。 聯絡人中,有三張表比較關鍵raw_contact,data.minetype. 下面的程式碼則是讀取和寫入聯絡人。
Python中檔案的讀取和寫入
從檔案中讀取資料 讀取整個檔案 這裡假設在當前目錄下有一個檔名為’pi_digits.txt’的文字檔案,裡面的資料如下: 3.1415926535 8979323846 2643383279 with open('pi_digits.txt') a
C++中Txt檔案讀取和寫入
一、ASCII 輸出 為了使用下面的方法, 你必須包含標頭檔案<fstream.h>(譯者注:在標準C++中,已經使用<fstream>取代< fstream.h>,所有的C++標準標頭檔案都是無後綴的。)。這是 <iostrea
JAVA CSV操作(讀取和寫入)
package com.udbac.util; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStre
C#中NPOI操作excel之讀取和寫入excel數
一、下載引用 下載需要引用的dll,即:NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll,ICSharpCode.SharpZipLib.dll(offic
File類的特點?如何建立File類物件?Java中如何操作檔案內容,什麼是Io流Io流如何讀取和寫入檔案?位元組緩衝流使用原則?
重難點提示 學習目標 1、能夠了解File類的特點(存在的意義,構造方法,常見方法) 2、能夠了解什麼是IO流以及分類(IO流的概述以及分類)
java操作excel需要的配置以及讀取和寫入方法
參考連結: https://blog.csdn.net/seven__________7/article/details/53338300 https://blog.csdn.net/lu1005287365/article/details/51704774 下載poi模組最新版本,連結
在VB.net裡面 操作 類屬性的讀取和寫入
以下是一個獨立的類 Public Class Class1 Private _Java As String Private _CSharp As String Private _VBNet As String Private _SQLServ
java中對txt和excel的讀取和寫入
txt工具類: package com.rj.bd.xm; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInpu
java中對xml的讀取和寫入
java對xml操作需匯入dom4j的jar包(如下): (解析)讀取xml: package com.rj.bd.xml.jx; import java.io.File; import java.util.List; import org.dom4j.Attri
【快學SCALA】Scala中檔案的讀取、寫入、控制檯輸入操作
1、檔案的讀取、寫入操作 2、控制檯操作程式碼實戰 val file = Source.fromFile("E:\\WangJialin.txt") for(line <-file.getLines){println(file)
Android中建立資料夾和檔案的操作
本文重溫講解下Android中如何建立資料夾和檔案, 1、首先需要新增許可權 <span style="font-size:10px;"><!--在sdcard中新增寫入資料的許可權 --> <uses-permission a
Android 檔案的讀取和寫入
(1)openFileInput和openFileOutput的使用 檔案的使用,注意最後要用finally給關閉掉。 openFileOutput:(寫入檔案,如果沒有檔名可以建立,這裡不需要判斷是否有這個檔案)---> FileOutputStre
Verilog十大基本功2(testbench的設計 檔案讀取和寫入操作 原始碼)
需求說明:Verilog設計基礎 內容 :testbench的設計 讀取檔案 寫入檔案 來自 :時間的詩 十大基本功之 testbench 1. 激勵的產生 對於 testbench 而言,埠應當和被測試的 module 一一對應。 埠分
Android中定時器Timer和TimerTask的啟動,停止,暫停,繼續等操作例項
下面是一個在Android中使用定時器Timer和TimerTask的啟動,停止,暫停,繼續等操作的demo。 需要注意的問題主要有兩點: 1、Timer和TimerTask在呼叫cancel()取消後不能再執行 schedule語句,否則提示出錯,提示如下:D/Andro
Android -- 利用ContentProvider 讀取和寫入簡訊
1. 讀寫簡訊 示例程式碼 均需要先獲得讀寫簡訊的許可權 <uses-permission android:name="android.permission.WRITE_SMS"/>
Scala中檔案的讀取、寫入、控制檯輸入操作程式碼實戰
內容: 1、檔案的讀取、寫入操作 2、控制檯操作程式碼實戰 val file = Source.fromFile("E:\\WangJialin.txt") for(line <-file.getLines){println(file)
使用C#操作Oracle Spatial的SDO_GEOMETRY對像(讀取和寫入)
首先,這個需要使用ODAC,也就是Oracle.DataAccess.dll,新出的託管Oracle.ManagedDataAccess.dll不支援Object Type,無法使用 先根據SDO_GEOMETRY物件的內容,在C#中構建一個對應的類,然後在讀取和寫入
IO流中以字元流讀取和寫入。
字元流的讀取。 public static void readFileByBufferReanderLine(File file) { BufferedReader bufferedReader = null; String tempString = null;
nodeks —— fs模塊 —— 從流中 讀取和寫入數據
require dstream ali 壓縮文件 當前目錄 con style 代碼 zlib Fs流讀取和寫入數據 使用文件流來讀取大文件不會卡頓 1, 從流中讀取數據 var fs = require("fs"); var data = ‘‘; var cou