Android(安卓)studio 获取手机联系人和号码并输出
16lz
2021-01-26
初学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(); } }}
更多相关文章
- Android 获取手机IMEI 和 IMSI 号
- 【Android(安卓)Debug】 Skipping insecure file ...
- webView获取链接后的url和加载经过处理后的HTML
- android 标题栏的高度
- Android:混合轮播视频和图片
- (持续更新, 目前含100+工具类) DevUtils 是一个 Android(安卓)工
- Android通过HttpURLConnection获取JSON并进行UI更新
- Android设置launchMode为singleTask的Activity怎么刷新页面内容
- android camera 小结