初学Android studio 需要做一个功能,获取联系人信息、并将联系人的名字,号码输出到显示屏上。

使用Android studio版本:3.2  JDK版本: jdk1.8.0_151  

首先在清单文件添加权限,获取联系人读写权限

然后是编写布局文件

<?xml version="1.0" encoding="utf-8"?>      

JAVA代码

/** * @author SmallLetters */public class MainActivity extends AppCompatActivity {    private             ListView             mlist_view;    private             ArrayAdapter mAdapter;    private             List         mContatcList     = new ArrayList<>();    public static final int                  REQ_CODE_CONTACT = 1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        initAdapter();        checkContactPermission();    }    /**     * 检查申请联系人权限     */    private void checkContactPermission() {        if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS)                != PackageManager.PERMISSION_GRANTED) {            //未获取到读取联系人权限            //向系统申请权限            ActivityCompat.requestPermissions(this,                    new String[]{Manifest.permission.READ_CONTACTS}, REQ_CODE_CONTACT);        } else {            query();        }    }    private void query() {        ContentResolver contentResolver = this.getContentResolver();        Cursor cursor = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,                null, null, null, null);        Log.d("SmallLetters", ContactsContract.CommonDataKinds.Phone.CONTENT_URI.toString());        if (cursor != null) {            while (cursor.moveToNext()) {                String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));                String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));                mContatcList.add("name" + name + "number" + number);            }            //更新数据            mAdapter.notifyDataSetChanged();            cursor.close();        }    }    private void initAdapter() {        mAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, mContatcList);                mlist_view.setAdapter(mAdapter);    }    private void initView() {        //获取list控件        mlist_view = findViewById(R.id.list_view);    }    @Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {        //判断用户是否,同意 获取联系人授权        if (requestCode == REQ_CODE_CONTACT && grantResults.length > 0                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {            //获取到读取联系人权限            query();        } else {            Toast.makeText(this, "未获取到联系人权限", Toast.LENGTH_SHORT).show();        }    }}

 

更多相关文章

  1. Android 获取手机IMEI 和 IMSI 号
  2. 【Android(安卓)Debug】 Skipping insecure file ...
  3. webView获取链接后的url和加载经过处理后的HTML
  4. android 标题栏的高度
  5. Android:混合轮播视频和图片
  6. (持续更新, 目前含100+工具类) DevUtils 是一个 Android(安卓)工
  7. Android通过HttpURLConnection获取JSON并进行UI更新
  8. Android设置launchMode为singleTask的Activity怎么刷新页面内容
  9. android camera 小结

随机推荐

  1. Android中图片占用内存的计算
  2. Android本地视频播放器开发--ffmpeg解码
  3. Android(安卓)startActivity源码详解
  4. android中MVP的理解和实例
  5. EventBus3.0使用详解
  6. Android[中级教程]第八章 Json数据的处理
  7. android播放音频文件(MediaPlayer)和录音
  8. Android中如何解析XML数据
  9. android:clearTaskOnLaunch的用法
  10. Android开发入门_Android整体架构概述