java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord{1a70ba3 18171:com.example.test1/u0a133} (pid=18171, uid=10133) requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS
时间: 2023-12-22 07:02:55 浏览: 216
这个错误是因为你的应用程序没有被授予读取或写入联系人的权限。你需要在你的AndroidManifest.xml文件中添加以下代码:
```
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
```
这将请求用户授予你的应用程序读取和写入联系人的权限。确保在运行时请求这些权限,以便在用户同意之前不会访问联系人。同时,你需要确保在代码中请求这些权限,可以使用以下代码:
```
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_CONTACTS}, 0);
```
这将请求用户授予你的应用程序读取和写入联系人的权限。在用户同意之前,你的应用程序将无法访问联系人。
相关问题
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test1/com.example.test1.InboxActivity}: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord{9d7cdbd 18018:com.example.test1/u0a133} (pid=18018, uid=10133) requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS
这个错误是因为你的应用程序没有被授予读取或写入联系人的权限。你需要在你的AndroidManifest.xml文件中添加以下代码:
```
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
```
这将请求用户授予你的应用程序读取和写入联系人的权限。确保在运行时请求这些权限,以便在用户同意之前不会访问联系人。同时,你需要确保在代码中请求这些权限,可以使用以下代码:
```
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_CONTACTS}, 0);
```
这将请求用户授予你的应用程序读取和写入联系人的权限。在用户同意之前,你的应用程序将无法访问联系人。
如何解决FATAL EXCEPTION: main Process: com.example.administrator.bookmanager, PID: 18790 java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider from ProcessRecord{ba36b24 18790:com.example.administrator.bookmanager/u0a131} (pid=18790, uid=10131) requires that you obtain access using ACTION_OPEN_DOCUMENT or related APIs
这个错误表明你的应用程序没有权限打开媒体文档提供程序。要解决这个问题,你需要在你的应用程序中请求权限并使用 `ACTION_OPEN_DOCUMENT` 或相关的 API 打开媒体文档提供程序。你可以按照以下步骤解决这个问题:
1. 在你的 AndroidManifest.xml 文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
```
这将允许你的应用程序读取外部存储器的内容。
2. 在你的代码中请求这个权限:
```java
if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(thisActivity, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE);
}
```
这会弹出一个对话框,请求用户允许你的应用程序读取外部存储器的内容。
3. 当用户允许你的应用程序访问外部存储器时,你可以使用 `ACTION_OPEN_DOCUMENT` 或相关的 API 打开媒体文档提供程序。
```java
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
startActivityForResult(intent, PICK_IMAGE);
```
这将打开媒体文档提供程序,用户可以选择他们所需的文档。
请注意,如果你使用的是 Android 10 或更高版本,你需要使用 `ACTION_OPEN_DOCUMENT_TREE` 或相关的 API 来访问外部存储器。
阅读全文