91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

android如何獲取手機聯系人的數據庫示例代碼

發布時間:2020-10-14 20:19:38 來源:腳本之家 閱讀:182 作者:song丶 欄目:移動開發

很多人在做手機聯系人的apk時會遇到,如何獲取手機聯系人數據庫的問題,在這里我就簡單的將代碼寫一下

package com.example.song.lx_day14_contacts; 
 
import android.content.ContentResolver; 
import android.database.Cursor; 
import android.net.Uri; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.widget.ListView; 
import android.widget.SimpleAdapter; 
import android.widget.TextView; 
 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 
 
/** 
 * 獲取手機通訊錄信息 展示并且修改 
 * listview 
 * simpleadapter 
 * list<Map<String,String>> 
 */ 
public class MainActivity extends AppCompatActivity { 
  private String uri_raw = "content://com.android.contacts/raw_contacts"; 
  //直接獲取data表中的 數據類型是phone 
  private String uri_phone = "content://com.android.contacts/data/phones"; 
  //直接獲取data表中數據類型是emali 
  private String uri_emalis = "content://com.android.contacts/data/emails"; 
  private String uri_data = "content://com.android.contacts/data"; 
  private ListView listView; 
  private TextView empty; 
  private SimpleAdapter adapter; 
  private List<Map<String, String>> data = new ArrayList<>(); 
  private ContentResolver contentResolver;//用來訪問數據 
 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    listView = ((ListView) findViewById(R.id.lv)); 
    empty = ((TextView) findViewById(R.id.empty)); 
    listView.setEmptyView(empty);//設置空視圖 
    adapter = new SimpleAdapter(this, data, R.layout.item, new String[]{"_id", "display_Name", "data1"}, new int[]{R.id.id, R.id.name, R.id.number}); 
    listView.setAdapter(adapter); 
    contentResolver = getContentResolver(); 
    reloadListView(); 
  } 
 
  private void reloadListView() { 
    data.clear(); 
    data.addAll(selectData()); 
    adapter.notifyDataSetChanged(); 
 
  } 
 
  //查詢工作 用于查詢data raw_contact標 返回list數據 在刷新adapter 
  private List<Map<String, String>> selectData() { 
    /** 
     * 1.先查詢raw 獲取_id查出所有聯系人 
     * 2.循環查詢-->根據_id去data表中(_id=raw_contacts_id)查詢 data1數據 
     */ 
    Cursor cursor = contentResolver.query(Uri.parse(uri_raw), new String[]{"_id", "display_name"}, null, null, null); 
    //cursor返回的cursor數量不定 
    List<Map<String, String>> list = new ArrayList<>(); 
    while (cursor != null && cursor.moveToNext()) { 
      String _id = cursor.getString(0); 
      String displayName = cursor.getString(1); 
      Map<String, String> map = new HashMap<>(); 
      map.put("_id", _id); 
      map.put("display_Name", displayName); 
      //根據_id 去data查手機號 
      Cursor cursor1 = contentResolver.query(Uri.parse(uri_phone), new String[]{"data1"}, "raw_contact_id=?", new String[]{_id}, null); 
      //循環拿到手機號 
      StringBuffer sb = new StringBuffer(); 
      //這里循環拿到手機號是因為有時聯系人中 你可能一個人有幾個電話 
      while (cursor1 != null && cursor1.moveToNext()) { 
        sb.append(cursor1.getString(0) + "\n"); 
      } 
      cursor1.close(); 
      map.put("data1", sb.toString()); 
      list.add(map); 
    } 
    cursor.close(); 
    return list; 
  } 
} 

在這里不要忘記了添加權限

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西丰县| 安国市| 信丰县| 茂名市| 金堂县| 孝昌县| 三河市| 美姑县| 响水县| 乌海市| 久治县| 沛县| 六枝特区| 肃北| 伊春市| 陆丰市| 钦州市| 河东区| 永安市| 阳西县| 南昌县| 肇源县| 瓦房店市| 马鞍山市| 岱山县| 宣城市| 如东县| 安国市| 大埔区| 黄梅县| 东乌珠穆沁旗| 凌源市| 石景山区| 琼结县| 东阳市| 柯坪县| 建阳市| 大新县| 健康| 永定县| 古浪县|