首页 > 系统 > Android > 正文

Android之内容提供者-- 获取联系人和短信信息

2019-11-08 01:04:21
字体:
来源:转载
供稿:网友

     大家好!今天要做了一个小小的Dome ! 其实就是获取手机上的联系人的号码 以及手机的短信 。这个好处就是再有些App中有中自动获取取联系人的信息,就是练练手而已。

不好意思我!没有图解,请谅解!

PRivate ContentResolver cr;private ArrayList<HashMap<String,Object>> list=new ArrayList<>();private ListView lists1;private SimpleAdapter sa;@Overrideprotected 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;@Overrideprotected 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" />


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表