溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android ContentProvider查看/讀取手機(jī)聯(lián)系人實(shí)例

發(fā)布時(shí)間:2020-08-26 05:42:46 來(lái)源:腳本之家 閱讀:176 作者:via_myra 欄目:移動(dòng)開發(fā)

看到某些App里面有讀取聯(lián)系人的功能,然后自己嘗試了一下。發(fā)現(xiàn)這個(gè)挺簡(jiǎn)單的。然后自己就做了一個(gè)demo給大家,希望借這個(gè)demo可以讓大家學(xué)習(xí)一下怎么實(shí)現(xiàn)讀取手機(jī)聯(lián)系人。

這里我用了兩種方法去讀取:第一張圖片是跳轉(zhuǎn)到系統(tǒng)自帶的聯(lián)系人界面,第二種就是直接去讀取讓后綁上來(lái)顯示在主頁(yè)面。話不多說直接上代碼。

記得在AndroidManifest.xml 記得加入這兩句,不然就讀取不到聯(lián)系人。

<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
package com.example.android_contentersolver;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts;
import android.provider.ContactsContract;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    findViewById(R.id.main_btn).setOnClickListener(new OnClickListener() { 
      @Override
      public void onClick(View v) {
        // TODO Auto-generated method stub
        //查詢聯(lián)系人號(hào)碼
        final Cursor cursor = getContentResolver()
            .query(ContactsContract.CommonDataKinds
            .Phone.CONTENT_URI, null, null, null, null);

         BaseAdapter adapter = new BaseAdapter()
         {
           @Override
           public int getCount()
           {
             return cursor.getCount();
           }

           @Override
           public Object getItem(int position)
           {
             return position;
           }

           @Override
           public long getItemId(int position)
           {
             return position;
           }

           @Override
           public View getView(int position,
               View convertView, ViewGroup parent)
             {
               cursor.moveToPosition(position);
//               CheckBox rb = new CheckBox(MainActivity.this);
               TextView text=new TextView(MainActivity.this);
               // 獲取聯(lián)系人的電話號(hào)碼,并去掉中間的中劃線、空格
               String number = cursor
                 .getString(cursor.getColumnIndex(
                 ContactsContract.CommonDataKinds
                 .Phone.NUMBER))
                 .replace("-", "")
                 .replace(" ", "");
//               rb.setText(number);
               String name = cursor
                   .getString(cursor.getColumnIndex(
                   ContactsContract.CommonDataKinds
                   .Phone.DISPLAY_NAME));
                text.setText("名字:"+name+"  電話號(hào)碼:"+number);


               return text;
             }
         };

       //加載listview
       ListView listview=(ListView) findViewById(R.id.mian_list);
       listview.setAdapter(adapter);
      }
    });


    //跳轉(zhuǎn)系統(tǒng)的聯(lián)系人界面
    findViewById(R.id.main_btn_sys).setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent intent=new Intent();
        intent.setAction(intent.ACTION_PICK);
        intent.setType("vnd.android.cursor.dir/phone");
        startActivityForResult(intent, 0x100);
      }
    });
  }

  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  // TODO Auto-generated method stub
  super.onActivityResult(requestCode, resultCode, data);
    Uri uri=data.getData();
    Cursor cursor = getContentResolver()
        .query(uri, null, null, null, null);
    while(cursor.moveToNext()){
      String name=cursor.getString(cursor.getColumnIndexOrThrow(Contacts.Phones.NAME));
      String number=cursor.getString(cursor.getColumnIndexOrThrow(Contacts.Phones.NUMBER));
      TextView textview=(TextView) findViewById(R.id.mian_lists);
      textview.setText("名字:"+name+"  電話號(hào)碼:"+number);
    }
  }



}

Android ContentProvider查看/讀取手機(jī)聯(lián)系人實(shí)例

Android ContentProvider查看/讀取手機(jī)聯(lián)系人實(shí)例

Android ContentProvider查看/讀取手機(jī)聯(lián)系人實(shí)例

Android ContentProvider查看/讀取手機(jī)聯(lián)系人實(shí)例

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI