大家好!今天要做了一个小小的Dome ! 其实就是获取手机上的联系人的号码 以及手机的短信 。这个好处就是再有些App中有中自动获取取联系人的信息,就是练练手而已。
不好意思我!没有图解,请谅解!
private ContentResolver cr; private ArrayList<HashMap<String,Object>> list=new ArrayList<>(); private ListView lists1; private SimpleAdapter sa; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //拿到内容提供者 cr = getContentResolver(); lists1 = (ListView) findViewById(R.id.lists); sa = new SimpleAdapter(this,list,android.R.layout.simple_list_item_2,new String[]{"name","phone"},new int[]{android.R.id.text1,android.R.id.text2} ); lists1.setAdapter(sa); } public void getPerson(View view){ //获取联系人和号码 Uri uri= Uri.parse("content://com.android.contacts/raw_contacts"); Cursor cursor=cr.query(uri,null,null,null,null); if(cursor!=null){ while (cursor.moveToNext()){ HashMap<String, Object> map = new HashMap<>(); int id=cursor.getInt(cursor.getColumnIndex("_id")); String name=cursor.getString(cursor.getColumnIndex("display_name")); map.put("name",name); list.add(map); sa.notifyDataSetChanged(); } } }
2、联系人权限
<!-- 获取联系人的权限--> <uses-permission android:name="android.permission.READ_CONTACTS"/>
3布局代码
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.zking.android_26.MainActivity" android:orientation="vertical"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="获取联系人" android:onClick="getPerson" /> <ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/lists" ></ListView> </LinearLayout>
4、获取短信
private ContentResolver cr; private ArrayList<HashMap<String,Object>> list=new ArrayList<>(); private ListView tv_sms; private SimpleAdapter sa; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mains); //拿到内容提供者 cr = getContentResolver(); tv_sms = (ListView) findViewById(R.id.tv_sms); sa = new SimpleAdapter(this,list,android.R.layout.simple_list_item_2,new String[]{"_id","address","person","date","type"},new int[]{android.R.id.text1,android.R.id.text2} ); tv_sms.setAdapter(sa); } public void rowSMS(View view){ /**所有的短信 * content://sms/ * *收件箱短信 :content://sms/inbox * * 发件箱短信 : content://sms/sent * * 草稿箱短信 :content://sms/draft * */ //获取联系人和号码 Uri uri= Uri.parse("content://sms/"); Cursor cursor=cr.query(uri,null,null,null,null); if(cursor!=null){ int _id; String address; String person; String date; String type; while (cursor.moveToNext()){ HashMap<String, Object> map = new HashMap<>(); _id=cursor.getInt(0); address=cursor.getString(1); person=cursor.getString(2); date=cursor.getString(3); type=cursor.getString(4); map.put("person",person); list.add(map); sa.notifyDataSetChanged(); } } }
<!--获取短息的权限--> <uses-permission android:name="android.permission.READ_SMS" />