當前位置:編程學習大全網 - 遊戲軟體 - java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider

java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider

這個錯誤可以參考如下內容:

ContentProviderjava.lang.SecurityException: Permission Denial異常解決

2017年08月30日 17:40:42

閱讀數:2175

今天在使用ContentProvider過程中遇到 壹個異常,在網上找了各種方法,但都不是我這個異常的解決方案,於是我搜啊搜,終於看到:.android.providers.contacts.ContactsProvider2

from ProcessRecord{8e31224 29224:activity.gudd.com.review/u0a212}

(pid=29224, uid=10212)

requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS

這個哥們呢說:

在SDK23也就是Android6.0.1裏編寫調用系統通訊錄讀寫權限的程序,在AndroidManifest.xml中,已經配置了

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

但還是遇到了上面的異常。

原因是SDK23對應用程序權限做出了改動,有兩種解決辦法:

1.使用SDK22開發,並且運行此程序的android虛擬機或者是手機系統6.0以下。

2.使用ContentResolver之前,輸入如下代碼,進行權限校驗。

首先進行REQUESTCODE: REQUEST_CODE_ASK_PERMISSIONS常量聲明。

解決辦法:

在使用ContentResolver之前,加入如下代碼。

在開始前聲明常量

final private int REQUEST_CODE_ASK_PERMISSIONS = 123;

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {int hasWriteContactsPermission = checkSelfPermission(Manifest.permission.READ_CONTACTS);if (hasWriteContactsPermission != PackageManager.PERMISSION_GRANTED){requestPermissions(new String[]{Manifest.permission.WRITE_CONTACTS},REQUEST_CODE_ASK_PERMISSIONS);return;}}

的確,我的問題解決了,並且提示出了是否讓我讀取聯系人的對話框。

  • 上一篇:笑話&腦筋急轉彎
  • 下一篇:如何評價電視劇《天地糧人》以及近期該電視劇的熱度回潮?
  • copyright 2024編程學習大全網