📜  如何在 android 中获取联系人权限 (1)

📅  最后修改于: 2023-12-03 15:38:12.620000             🧑  作者: Mango

如何在 Android 中获取联系人权限

在 Android 应用中,有时需要访问用户的联系人来完成一些业务需求,例如拨打电话、发送短信等。而要访问用户的联系人,首先需要获取相应的权限。本文将介绍如何在 Android 中获取联系人权限。

1. 添加权限声明

在 AndroidManifest.xml 文件中添加以下权限声明:

<uses-permission android:name="android.permission.READ_CONTACTS" />

该权限声明表明应用将会获取读取联系人的权限。

2. 请求权限

在应用运行时,需要请求相应的权限。可以通过以下代码请求联系人权限:

if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS}, REQUEST_CODE);
}

在上述代码中,ContextCompat.checkSelfPermission 方法用于判断应用是否已被授予权限,若未被授予该权限,则通过 ActivityCompat 类的 requestPermissions 方法请求该权限。

需要注意的是,这里请求的是 Manifest.permission.READ_CONTACTS 权限,若需要访问其他权限,需替换为相应的权限名称。

3. 处理权限请求结果

当用户处理完权限请求之后,系统将会回调 onRequestPermissionsResult 方法,我们需要在该方法中获取相应的权限结果:

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    if (requestCode == REQUEST_CODE) {
        if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            // 权限已被授予
        } else {
            // 权限被拒绝
        }
    }
}

在该方法中,我们根据 requestCode 判断当前的请求,然后判断 grantResults 数组中第一个元素表示该权限是否被授予。

小结

以上就是在 Android 中获取联系人权限的全部流程。通过添加权限声明、请求权限和处理权限请求结果,我们可以在应用中访问用户的联系人了。