Android permission denied原因歸納和解決辦法
下面是我在學(xué)習(xí)android開發(fā)時(shí)遇到的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(手機(jī)中的文件)
解決方法
首先,同樣需要在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>
其次還需要使得這個(gè)app獲得 存儲(chǔ)權(quán)限可以在手機(jī) ->設(shè)置 -> 對(duì)應(yīng)app 中進(jìn)行設(shè)置,允許app讀取手機(jī)內(nèi)存(最簡單的方法)。
更好的方法(正規(guī)的方法)是在打開app時(shí),檢查app是否有權(quán)限讀取內(nèi)存。如果沒有的話,提示用戶開啟 可以寫一個(gè)snackbar指向 這個(gè)app的settings。代碼如下:
/**
* 檢查app是否擁有存儲(chǔ)權(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();
// 請(qǐng)求權(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() 里,打開此頁面時(shí)會(huì)提醒用戶開啟對(duì)應(yīng)權(quán)限。
到此這篇關(guān)于Android permission denied原因歸納和解決辦法的文章就介紹到這了,更多相關(guān)Android permission denied內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android EdText編輯框禁止輸入表情符號(hào)(使用正則表達(dá)式)
這篇文章主要介紹了Android EdText編輯框禁止輸入表情符號(hào)使用正則表達(dá)式,需要的朋友可以參考下2017-06-06
Kotlin字符串操作在Android開發(fā)中的應(yīng)用示例代碼
本文介紹了Kotlin在Android開發(fā)中的字符串操作,包括多行字符串的創(chuàng)建、字符串插值、獲取字符串長度以及處理特殊字符等,通過示例代碼,展示了這些操作的實(shí)現(xiàn)方法,使開發(fā)者在處理字符串時(shí)更加高效便捷,感興趣的朋友一起看看吧2025-03-03
Flutter使用?input?chip?標(biāo)簽組件示例詳解
這篇文章主要為大家介紹了Flutter使用?input?chip?標(biāo)簽組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
教你3分鐘了解Android 簡易時(shí)間軸的實(shí)現(xiàn)方法
本篇文章主要介紹了教你3分鐘了解Android 簡易時(shí)間軸的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07
Android自定義ViewGroup實(shí)現(xiàn)流式布局
這篇文章主要為大家詳細(xì)介紹了Android自定義ViewGroup實(shí)現(xiàn)流式布局,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09
android圖像繪制(六)獲取本地圖片或拍照?qǐng)D片等圖片資源
從SD卡中獲取圖片資源,或者拍一張新的圖片,然后再進(jìn)行處理(直接處理返回圖片/獲得圖片的地址再處理)接下來為您詳細(xì)介紹,感興趣的朋友可以了解下2013-01-01
Android多個(gè)TAB選項(xiàng)卡切換效果
這篇文章主要介紹了Android多個(gè)TAB選項(xiàng)卡切換效果的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-04-04
Flutter項(xiàng)目在 iOS14 啟動(dòng)崩潰的解決方法
這篇文章主要介紹了Flutter項(xiàng)目在 iOS14 啟動(dòng)崩潰的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09

