android获取联系人信息吗
⑴ 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
挨个去取即可。