Android 如何實現(xiàn)動態(tài)申請權限
OverView
今天在復習的時候,突然復習到我們的相機操作,但是對于相機操作,對于我來說比較復雜的是對于權限的操作。所有我們需要對我們的相機操作進行一些筆記的整理,加深記憶。
開發(fā)環(huán)境
Android Studio 3.6
Android 11(R)
該筆記使用 java
權限申請的基礎知識
學習自:GOOGLE ANDROID DEVELOPERS
對于我們所需要申請的權限我們需要進行如下的操作。
我們需要將所有需要申請的權限添加到App/src/main/AndroidManifest.xml文件中。
但是權限也是分為常規(guī)的權限和危險的權限的,對于常規(guī)的權限我們的只需要在AndroidManifest.xml文件中添加就可以使用了,但是對于一些被視為危險權限的,我們就需要讓用戶來選擇時候同意申請。
接下來我們就看一下如何操作我們的危險權限吧。
如何判斷是否申請了權限
按照國際慣例我們先看一下源代碼:
private boolean checkPermission() { //first we need check this Drive has? CAMERA Permission if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CAMERA}, CHECK_PERMISSION_CAMERA); return false; } else return true; }
這里我們使用我們的相機權限作為實例。
首先我們需要判斷我們的使用有相機權限,可以使用,申請完成后我們需要進行權限申請。我們將我們所需要的權限申請,并且傳入我們的指定代碼。這里我的CHECK_PERMISSION_CAMERA的值為1。
然后就是我們需要重寫我們的系統(tǒng)方法onRequestPermissionsResult
這個方法可以很好的來判斷用戶時候同意了我們的權限申請。
首先來看看我們的源代碼:
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode) { case CHECK_PERMISSION_CAMERA: { if (grantResults.length > 0 && permissions[0].equals(PackageManager.PERMISSION_GRANTED)) { Toast.makeText(this, "The camera permission application wes successful!", Toast.LENGTH_SHORT).show(); dispatchTakePictureIntent(); } else { Toast.makeText(this, "The camera permission application wes failed!", Toast.LENGTH_SHORT).show(); } } break; } }
這個就是我判斷用戶時候同意我們申請相機權限的全部代碼了。
這個也是非常的簡單,我們通過在申請的時候傳入的識別代碼來判斷,如果代碼通過后我們需要通過驗證grantResults的長度和權限數(shù)組中的索引位置來判斷用戶有沒有同意我們的權限申請。如果同意了我們就可以進行下一步操作。
這部分代碼還是非常的簡單的。關于動態(tài)權限的申請還是非常的簡單的。
以上這篇Android 如何實現(xiàn)動態(tài)申請權限就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Android開發(fā)判斷一個app應用是否在運行的方法詳解
這篇文章主要介紹了Android開發(fā)判斷一個app應用是否在運行的方法,結合實例形式較為詳細的分析了Android判斷應用運行狀態(tài)的相關操作技巧與注意事項,需要的朋友可以參考下2017-11-11Android編程實現(xiàn)圖片的瀏覽、縮放、拖動和自動居中效果
這篇文章主要介紹了Android編程實現(xiàn)圖片的瀏覽、縮放、拖動和自動居中效果,以具體實例形式分析了Android針對圖片各種常見顯示效果的布局及功能實現(xiàn)技巧,需要的朋友可以參考下2015-11-11Android Intent與IntentFilter案例詳解
這篇文章主要介紹了Android Intent與IntentFilter案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08Android性能優(yōu)化之利用強大的LeakCanary檢測內(nèi)存泄漏及解決辦法
本篇文章主要介紹了Android性能優(yōu)化之利用LeakCanary檢測內(nèi)存泄漏及解決辦法,有興趣的同學可以了解一下。2016-11-11Android和JavaScript相互調(diào)用的方法
這篇文章主要介紹了Android和JavaScript相互調(diào)用的方法,實例分析了Android的WebView執(zhí)行JavaScript及JavaScript訪問Android的技巧,需要的朋友可以參考下2015-12-12Jetpack Compose 雙指拖拽實現(xiàn)詳解
這篇文章主要為大家介紹了Jetpack Compose 雙指拖拽實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11