您好,登錄后才能下訂單哦!
這篇文章給大家介紹EasyGBD訪問SD卡目錄報open failed: EACCES (Permission denied)如何解決,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
去年由于一整年的疫情持久戰,視頻監控智能分析系統在抗疫項目上也落了地,而國標GB28181協議作為公安部提出的視頻流協議,在很多抗疫視頻分析系統中也發揮了重要作用。
在此之前,我們就研發了國標GB28181協議的推流平臺EasyGBD,當時主要是為了交警、公安在外出執勤的情況下,能夠將單兵設備的視頻流通過國標協議推送至國標平臺,但是在今年的防疫中,我們發現醫護人員仍能夠通過EasyGBD來對戶外執勤進行國標協議的視頻記錄和推流。
我們在開發EasyGBD 訪問SD卡目錄的時候,出現報錯:open failed: EACCES (Permission denied)
分析問題:
在出現該問題的時候,我們首先想到的就是Android Q分區存儲權限變更及適配問題。
為了讓用戶更好地控制自己的文件,并限制文件混亂的情況,Android Q修改了APP訪問外部存儲中文件的方法。外部存儲的新特性被稱為Scoped Storage。
Android Q仍然使用READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE作為面向用戶的存儲相關運行時權限,但現在即使獲取了這些權限,訪問外部存儲也受到了限制。APP需要這些運行時權限的情景發生了變化,且各種情況下外部存儲對APP的可見性也發生了變化。
解決問題:
剛開始在AndroidManifest.xml已經聲明了讀寫權限,
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
但在訪問相冊的時候,還是報錯:
open failed: EACCES (Permission denied)
解決方法是在AndroidManifest.xml添:
android:requestLegacyExternalStorage="true"
代碼如下:
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme" android:requestLegacyExternalStorage="true">
運行效果如下:
關于EasyGBD訪問SD卡目錄報open failed: EACCES (Permission denied)如何解決就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。