Android申請相機(jī)權(quán)限和讀寫權(quán)限實例
開發(fā)一個相機(jī)應(yīng)用,需要申請三個權(quán)限:相機(jī)、讀文件、寫文件。
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、新建一個Permission類
public class Permission {
public static final int REQUEST_CODE = 5;
//定義三個權(quán)限
private static final String[] permission = new String[]{
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
};
//每個權(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返回兩個值
* 有權(quán)限: PackageManager.PERMISSION_GRANTED
* 無權(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 {
//如果沒有設(shè)置過權(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","請求權(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申請相機(jī)權(quán)限和讀寫權(quán)限實例的文章就介紹到這了,更多相關(guān)Android申請相機(jī)權(quán)限內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pytorch模型訓(xùn)練的時候GPU使用率不高的問題
這篇文章主要介紹了pytorch模型訓(xùn)練的時候GPU使用率不高的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
python3反轉(zhuǎn)字符串的3種方法(小結(jié))
這篇文章主要介紹了python3反轉(zhuǎn)字符串的3種方法(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

