Android permission denied原因歸納和解決辦法
下面是我在學(xué)習(xí)android開發(fā)時遇到的permission denied的問題和解決辦法
1. net: ERR_CACHE_MISS
解決方法
在AndroidManifest.xml中加入 permission如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.xxx">
<uses-permission android:name="android.permission.INTERNET"/>
...
</manifest>
2. 讀取寫入external storage(手機中的文件)
解決方法
首先,同樣需要在AndroidManifest.xml中加入 permission
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.xxx">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 下面這行代碼也非常重要,千萬不要忘記加-->
<application
...
android:requestLegacyExternalStorage="true">...</application>
</manifest>
其次還需要使得這個app獲得 存儲權(quán)限可以在手機 ->設(shè)置 -> 對應(yīng)app 中進行設(shè)置,允許app讀取手機內(nèi)存(最簡單的方法)。
更好的方法(正規(guī)的方法)是在打開app時,檢查app是否有權(quán)限讀取內(nèi)存。如果沒有的話,提示用戶開啟 可以寫一個snackbar指向 這個app的settings。代碼如下:
/**
* 檢查app是否擁有存儲權(quán)限,如果沒有的話,提醒用戶開啟權(quán)限
*/
public void handlePermission() {
// 檢查是否開啟 Manifest.permission.xxx
// (xxx 為權(quán)限,根據(jù)自己需求添加)
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "Permission has been allowed", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "ask for permission",Toast.LENGTH_SHORT).show();
// 請求權(quán)限
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
Log.d(TAG, "handlePermission: has aksed");
}
}
此函數(shù)可以根據(jù)自己需求放到 onCreate() method里面或者,listener() 里面。例如,如果放到onCreate() 里,打開此頁面時會提醒用戶開啟對應(yīng)權(quán)限。
到此這篇關(guān)于Android permission denied原因歸納和解決辦法的文章就介紹到這了,更多相關(guān)Android permission denied內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android EdText編輯框禁止輸入表情符號(使用正則表達式)
這篇文章主要介紹了Android EdText編輯框禁止輸入表情符號使用正則表達式,需要的朋友可以參考下2017-06-06
Kotlin字符串操作在Android開發(fā)中的應(yīng)用示例代碼
本文介紹了Kotlin在Android開發(fā)中的字符串操作,包括多行字符串的創(chuàng)建、字符串插值、獲取字符串長度以及處理特殊字符等,通過示例代碼,展示了這些操作的實現(xiàn)方法,使開發(fā)者在處理字符串時更加高效便捷,感興趣的朋友一起看看吧2025-03-03
Flutter使用?input?chip?標(biāo)簽組件示例詳解
這篇文章主要為大家介紹了Flutter使用?input?chip?標(biāo)簽組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10
教你3分鐘了解Android 簡易時間軸的實現(xiàn)方法
本篇文章主要介紹了教你3分鐘了解Android 簡易時間軸的實現(xiàn)方法,具有一定的參考價值,有興趣的可以了解一下2017-07-07
Android自定義ViewGroup實現(xiàn)流式布局
這篇文章主要為大家詳細介紹了Android自定義ViewGroup實現(xiàn)流式布局,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-09-09
android圖像繪制(六)獲取本地圖片或拍照圖片等圖片資源
從SD卡中獲取圖片資源,或者拍一張新的圖片,然后再進行處理(直接處理返回圖片/獲得圖片的地址再處理)接下來為您詳細介紹,感興趣的朋友可以了解下2013-01-01

