在Android中获取READ_CONTACT预置

时间:2016-10-15 13:13:08

标签: android android-manifest

我试图阅读联系人详细信息但是当我运行代码时会出错

FATAL EXCEPTION: AsyncTask #1
....
Caused by: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2  .... requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS

这是我的清单文件。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.arfan.myfirstapp">
<uses-permission android:name="android.permission.READ_CONTACTS" />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

您可以检查我的代码重置方式,以便我尝试阅读联系人 这是一个你可以检查它的链接。 CODE

请告诉我为什么我无法获得许可。我是android的新手 感谢。

2 个答案:

答案 0 :(得分:0)

用这个替换你的清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.arfan.myfirstapp">

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

答案 1 :(得分:0)

这是追加,因为来自Android 6的必须在运行时需要权限

https://developer.android.com/training/permissions/requesting.html

您必须始终在清单中要求它,但如果设备运行Android 6或更高版本,您必须向用户请求权限,您可以在链接中找到如何