當前位置:首頁 » 安卓系統 » android獲取聯系人信息嗎

android獲取聯系人信息嗎

發布時間: 2022-08-16 20:35:23

⑴ android開發怎樣獲取通訊錄聯系人信息

  • 要獲取通訊錄的聯系人信息,只有通過系統聯系人應用的內容提供者,才能訪問到聯系人資料庫,下面有一個代碼演示

  • 代碼演示

    • java">privateArrayList<HashMap<String,String>>readContact(){
      //首先,從raw_contacts中讀取聯系人的id("contact_id")
      //其次,根據contact_id從data表中查詢出相應的電話號碼和聯系人名稱
      //然後,根據mimetype來區分哪個是聯系人,哪個是電話號碼
      UrirawContactsUri=Uri
      .parse("content://com.android.contacts/raw_contacts");
      UridataUri=Uri.parse("content://com.android.contacts/data");
      ArrayList<HashMap<String,String>>list=newArrayList<>();
      //從raw_contacts中讀取聯系人的id("contact_id")
      CursorrawContactsCursor=getContentResolver().query(rawContactsUri,
      newString[]{"contact_id"},null,null,null);
      if(rawContactsCursor!=null){
      while(rawContactsCursor.moveToNext()){
      StringcontactId=rawContactsCursor.getString(0);
      //System.out.println(contactId);
      //根據contact_id從data表中查詢出相應的電話號碼和聯系人名稱,實際上查詢的是視圖view_data
      CursordataCursor=getContentResolver().query(dataUri,
      newString[]{"data1","mimetype"},"contact_id=?",
      newString[]{contactId},null);
      if(dataCursor!=null){
      HashMap<String,String>map=newHashMap<String,String>();
      while(dataCursor.moveToNext()){
      Stringdata1=dataCursor.getString(0);
      Stringmimetype=dataCursor.getString(1);
      //System.out.println(contactId+";"+data1+";"
      //+mimetype);
      if("vnd.android.cursor.item/phone_v2".equals(mimetype)){
      map.put("phone",data1);
      }elseif("vnd.android.cursor.item/name"
      .equals(mimetype)){
      map.put("name",data1);
      }
      }
      list.add(map);
      dataCursor.close();
      }
      }
      rawContactsCursor.close();
      }
      returnlist;
      }


    • 手機聯系人圖片:


安卓手機都需要獲取聯系人信息許可權,這會泄露個人隱私么

無法確定的事,認為這應該是可能存在的。

個人一般都是禁止相關程序訪問聯系人的說!

除非軟體的相關功能一定要用,就只能妥協了。

⑶ android,是不是許多第三方應用都可獲得通訊錄的信息怎樣防止自己的通訊信息被第三方應用得到

這個好像還真沒有辦法!
你在安裝應用的時候,就會提示你,某些應用會訪問你的通訊錄,如果你不信任這個應用,你可以不裝它!

⑷ android 怎麼獲取通訊錄聯系人

Example_03_02的原代碼:
package com.yarin.android.Examples_03_02;import android.app.Activity;import android.content.ContentResolver;import android.database.Cursor;import android.os.Bundle;import android.provider.ContactsContract;import android.provider.ContactsContract.PhoneLookup;import android.widget.TextView;
public class Activity01 extends Activity{
public void onCreate(Bundle savedInstanceState)
{
TextView tv = new TextView(this);
String string = "";
super.onCreate(savedInstanceState);
//得到ContentResolver對象
ContentResolver cr = getContentResolver();
//取得電話本中開始一項的游標
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
//向下移動一下游標
while(cursor.moveToNext())
{
//取得聯系人名字
int nameFieldColumnIndex =cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
String contact = cursor.getString(nameFieldColumnIndex);//取得電話號碼
int numberFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.NUMBER);//報錯,返回值為-1.
String number = cursor.getString(numberFieldColumnIndex);
string += (contact+":"+number+"
");
}
cursor.close();
//設置TextView顯示的內容
tv.setText(string);
//顯示到屏幕
setContentView(tv);
}
}

參考android官方API資料及網上大牛們的經驗,本代碼修改如下:
package com.example.helloandroid;import android.app.Activity;import android.os.Bundle;import android.provider.ContactsContract;import android.provider.ContactsContract.PhoneLookup;import android.database.Cursor;import android.widget.TextView;import android.content.ContentResolver;
public class Activity01 extends Activity{
public void onCreate(Bundle savedInstanceState)
{
TextView tv = new TextView(this);
String string = "";
super.onCreate(savedInstanceState);
//得到ContentResolver對象
ContentResolver cr = getContentResolver();
//取得電話本中開始一項的游標
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
//向下移動游標
while(cursor.moveToNext())
{
//取得聯系人名字
int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
String contact = cursor.getString(nameFieldColumnIndex);
//取得電話號碼
String ContactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + ContactId, null, null);
while(phone.moveToNext())
{
String Number = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); string += (contact + ":" + Number + "
");
}
}
cursor.close();
//設置TextView顯示的內容
tv.setText(string);
//顯示到屏幕
setContentView(tv);
}
}

⑸ Android編程,根據姓名獲得手機通訊錄中的電話號碼

importcn.teachcourse.R;

/**
*[email protected]/5/5.
*/
{
privatestaticfinalStringTAG=PhoneNameActivity.class.getSimpleName();
privateEditTextet;

publicstaticvoidstart(Contextcontext){
start(context,null);
}

publicstaticvoidstart(Contextcontext,Intentextras){
Intentintent=newIntent();
intent.setClass(context,PhoneNameActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
|Intent.FLAG_ACTIVITY_SINGLE_TOP);
if(extras!=null){
intent.putExtras(extras);
}
context.startActivity(intent);
}

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_phone_name);
et=(EditText)this.findViewById(R.id.mobile);
}

publicvoidgetTelClick(Viewview){
Stringname=et.getText().toString().trim();
number(name);
}

/**
*通過輸入獲取電話號碼
*/
publicvoidnumber(Stringname){
//使用ContentResolver查找聯系人數據
Cursorcursor=getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);
//遍歷查詢結果,找到所需號碼
while(cursor.moveToNext()){
//獲取聯系人ID
StringcontactId=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
//獲取聯系人的名字
StringcontactName=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
if(name.equals(contactName)){
//使用ContentResolver查找聯系人的電話號碼
Cursorphone=getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+contactId,null,null);
if(phone.moveToNext()){
StringphoneNumber=phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Toast.makeText(this,phoneNumber+"TeachCourse——blog。。。",Toast.LENGTH_SHORT).show();
Log.d(TAG,"電話:"+phoneNumber);
break;
}

}
}
}
}

1、修改getTelClick()方法

2、修改Toast麵包屑提示

3、修改獲取聯系人名字方法

4、位置稍微調整

⑹ 為什麼安卓手機上,每個軟體都要讀取聯系人信息

大部分國產安卓軟體,都會向系統申請一些與其功能不相乾的許可權,想方設法獲取用戶個人隱私信息,大部分軟體廠商(開發者)都會給出一個理由:我們是在收集用戶的使用習慣,做大數據調查分析,為了給用戶提供更加人性化的服務和功能。

⑺ 為什麼好多安卓軟體讀取簡訊記錄,通話記錄,聯系人信息

安卓設備獲取設備信息、讀取位置信息、讀取通話記錄、讀取簡訊記錄等是使用一些功能的需要。是軟體可能用到的功能。 比如:導航軟體會會用到定位,如果關閉定位,導航的定位的相關功能將不能使用,還有通訊類軟體有時會需要讀取通話記錄和簡訊記錄等。 信息,指音訊、消息、通訊系統傳輸和處理的對象,泛指人類社會傳播的一切內容。人通過獲得、識別自然界和社會的不同信息來區別不同事物,得以認識和改造世界。在一切通訊和控制系統中,信息是一種普遍聯系的形式。

⑻ 安卓手機如何獲取通訊錄中的姓名和電話

今天早上看到一個通訊錄的Demo,真心覺得做的不錯。
www點apkbus點com/forum.php?mod=viewthread&tid=91016
這個通訊錄包含了撥號盤、聯系人、簡訊、個人中心4大模塊
其中,撥號盤功能包含了t9鍵盤搜索,電話搜索聯系人的功能,並且在第一次載入時顯示了通話記錄。
聯系人模塊顯示了聯系人的名稱和電話,可進行快速檢索,並可選擇不同群組的聯系人,展示群組的效果是照著人人網菜單的效果改變的信息模塊顯示了信息列表(其中包含電話、數量、時間、信息預覽)
個人中心,是留給大家的想像空間..

⑼ android如何獲取通訊錄聯系人信息,並顯示出來

查詢資料庫,一般聯系人的信息都存儲在contacts2.db這個資料庫中,你可以通過ContentProvider來查詢,聯系人的信息的表結構比較復雜,不知道你想要查詢什麼樣的信息?

⑽ android如何獲取聯系人所有信息

獲取聯系人必須添加許可權

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

如何獲取手機聯系人信息

根據ContactsContract.Contacts.CONTENT_URI查詢ContentResolver裡面的數據,逐個取值即可。

如何獲取sim卡的聯系人信息

根據目前查找的信息來看,sim聯系人的uri有兩種:

  • content://icc/adn

  • content://sim/adn
    挨個去取即可。

熱點內容
編程好軟體 發布:2025-01-16 20:38:07 瀏覽:422
流量密碼如何改成 發布:2025-01-16 20:37:13 瀏覽:49
java判斷是否是對象 發布:2025-01-16 20:31:04 瀏覽:884
python調用外部程序 發布:2025-01-16 20:14:09 瀏覽:396
緩解壓力英語作文 發布:2025-01-16 20:13:31 瀏覽:64
javaname 發布:2025-01-16 20:13:15 瀏覽:21
用戶訪問表空間 發布:2025-01-16 20:07:07 瀏覽:943
java代碼自動編譯 發布:2025-01-16 19:58:14 瀏覽:313
編程很困難 發布:2025-01-16 19:58:09 瀏覽:673
gg登錄源碼 發布:2025-01-16 19:58:07 瀏覽:292