时间:2021-05-20
利用ContentResolver内容访问者,获取手机联系人信息我做了两种不同的做法。第一种,直接获取所有手机联系人信息,展示在ListView中。第二种,通过Butten按钮跳转到系统的手机联系人界面,单个获取手机联系人信息,展示在ListView中,结果如下:
第一种:
第二种:
第一种:直接获取所有手机联系人信息
首先需要在AndroidManifest.xml文件中添加权限:
activity_xs.xml布局:
MainActivity类:
第二种:通过Butten按钮跳转到系统的手机联系人界面,单个获取手机联系人信息,展示在ListView中
activity_contacts.xml布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_contacts" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.android_25.ContactsActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="跳转到联系人页面" android:id="@+id/b_tzcontacts" /> </LinearLayout> <ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/lv_contacts" ></ListView></LinearLayout>ContactsActivity类:
private Button b_tzcontacts;private String phoneName;private String phoneNumber;private List<Map<String,Object>> datalistView;private ListView lv_contacts;private SimpleAdapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_contacts); //获得跳转到联系人的id b_tzcontacts =(Button) findViewById(R.id.b_tzcontacts); //获得ListView的ID lv_contacts =(ListView) findViewById(R.id.lv_contacts); //定义一个接受联系人姓名和电话号码的集合 datalistView = new ArrayList<>(); //获取联系人的点击事件 b_tzcontacts.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intentPhone=new Intent(Intent.ACTION_PICK); intentPhone.setData(ContactsContract.Contacts.CONTENT_URI); startActivityForResult(intentPhone,0); } }); //R.layout.activity_xs就是上文的activity_xs布局问价 adapter = new SimpleAdapter(this, datalistView, R.layout.activity_xs,new String[]{"images","titles"},new int[]{R.id.tv_name,R.id.tv_telephone}); lv_contacts.setAdapter(adapter);} //获得返回的结果@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode){ case 0: if(resultCode== Activity.RESULT_OK){ Uri uri=data.getData(); Cursor cursor=managedQuery(uri,null,null,null,null); cursor.moveToFirst(); String contactid=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); //得到ContentResolver ContentResolver contentResolver=getContentResolver(); Cursor phone=contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+contactid,null,null); while (phone.moveToNext()){ //联系人 phoneName =phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); //手机号码 phoneNumber =phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); //格式化手机号 phoneNumber = phoneNumber.replace("-",""); phoneNumber = phoneNumber.replace("",""); //将用户名和号码放入Map集合中 Map<String,Object> map=new HashMap<>(); map.put("images",phoneName); map.put("titles",phoneNumber); datalistView.add(map); } //刷新适配器 adapter.notifyDataSetChanged(); } break; }}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Android如何获取手机联系人信息,本文为大家揭晓。获取手机联系人信息步骤:1、获取ContentResolverContentResolverresolve
Android获取系统联系人信息的实例一、获取手机联系人姓名及手机号//跳转到系统联系人应用Intentintent=newIntent(Intent.ACTI
利用ContentResolver访问者获取手机短信信息,在此记录一下,一遍以后查询。首先看一下结果,结果如下:activity_message.xml类:ac
本文实例为大家分享了Android实现访问联系人的具体代码,供大家参考,具体内容如下要求:编写程序,使用ContentProvider实现访问联系人Conten
本文介绍了如何从Android手机上访问iCloud照片、电子邮件、日历和联系人。在Android手机上访问iCloud照片你可以通过手机浏览器登录到你的账户,