Android申請(qǐng)相機(jī)權(quán)限和讀寫(xiě)權(quán)限實(shí)例
開(kāi)發(fā)一個(gè)相機(jī)應(yīng)用,需要申請(qǐng)三個(gè)權(quán)限:相機(jī)、讀文件、寫(xiě)文件。
1、在AndroidManifest.xml中添加
<uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2、新建一個(gè)Permission類
public class Permission { public static final int REQUEST_CODE = 5; //定義三個(gè)權(quán)限 private static final String[] permission = new String[]{ Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, }; //每個(gè)權(quán)限是否已授 public static boolean isPermissionGranted(Activity activity){ if(Build.VERSION.SDK_INT >= 23){ for(int i = 0; i < permission.length;i++) { int checkPermission = ContextCompat.checkSelfPermission(activity,permission[i]); /*** * checkPermission返回兩個(gè)值 * 有權(quán)限: PackageManager.PERMISSION_GRANTED * 無(wú)權(quán)限: PackageManager.PERMISSION_DENIED */ if(checkPermission != PackageManager.PERMISSION_GRANTED){ return false; } } return true; }else{ return true; } } public static boolean checkPermission(Activity activity){ if(isPermissionGranted(activity)) { return true; } else { //如果沒(méi)有設(shè)置過(guò)權(quán)限許可,則彈出系統(tǒng)的授權(quán)窗口 ActivityCompat.requestPermissions(activity,permission,REQUEST_CODE); return false; } } }
3、在MainActivity中加入授權(quán)操作
@Override protected void onStart() { super.onStart(); Permission.checkPermission(this); } @Override protected void onResume() { super.onResume(); if(Permission.isPermissionGranted(this)) { Log.i("PERMISSION","請(qǐng)求權(quán)限成功"); } }
初步授權(quán)成功
4、在MainActivity中處理授權(quán)失敗結(jié)果,拒絕授權(quán)則退出應(yīng)用
@Override public void onRequestPermissionsResult( int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == Permission.REQUEST_CODE) { for (int grantResult : grantResults) { if (grantResult != PackageManager.PERMISSION_GRANTED) { Log.e("Permission","授權(quán)失?。?); // 授權(quán)失敗,退出應(yīng)用 this.finish(); return; } } } }
效果圖
到此這篇關(guān)于Android申請(qǐng)相機(jī)權(quán)限和讀寫(xiě)權(quán)限實(shí)例的文章就介紹到這了,更多相關(guān)Android申請(qǐng)相機(jī)權(quán)限內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)Flappy Bird源碼
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)Flappy Bird源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12Python RobotFramework的安裝過(guò)程及應(yīng)用實(shí)戰(zhàn)教程
這篇文章主要介紹了RobotFramework的安裝過(guò)程及應(yīng)用實(shí)戰(zhàn)教程,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08Python入門(mén)教程2. 字符串基本操作【運(yùn)算、格式化輸出、常用函數(shù)】
這篇文章主要介紹了Python字符串基本操作,結(jié)合實(shí)例形式總結(jié)分析了Python字符串的基本表示、運(yùn)算、格式化輸出、常用函數(shù)等,注釋包含較為詳盡的說(shuō)明,便于理解,需要的朋友可以參考下2018-10-10Python向excel中寫(xiě)入數(shù)據(jù)的方法
這篇文章主要介紹了Python向excel中寫(xiě)入數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05在Python 不同級(jí)目錄之間模塊的調(diào)用方法
今天小編就為大家分享一篇在Python 不同級(jí)目錄之間模塊的調(diào)用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01釘釘群自定義機(jī)器人消息Python封裝的實(shí)例
今天小編就為大家分享一篇釘釘群自定義機(jī)器人消息Python封裝的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02