Android呼叫相簿、相機(相容6.0、7.0、8.0)所需新增的許可權
在AndroidManifest.xml中新增:
<!--讀寫記憶體塊許可權-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--呼叫相機許可權-->
<uses-permission android:name="android.permission.CAMERA" />
動態許可權新增:
在onCreate中新增
//調取系統照相機
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!=
PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
} else {
wxat = 200;
}
方法:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 1) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "授權成功", Toast.LENGTH_SHORT).show();
wxat = 200;
} else {
Toast.makeText(this, "授權失敗", Toast.LENGTH_SHORT).show();
}
}
}
或者使用easypermissions框架 (https://github.com/googlesamples/easypermissions)
1、首先也是在AndroidManifest.xml中新增:
<!--讀寫記憶體塊許可權-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--呼叫相機許可權-->
<uses-permission android:name="android.permission.CAMERA" />
2、在主頁面中:
2.1、初始化集合裝載所需網路許可權
private String[] permissions = {Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE};
2.2、檢查許可權申請許可權
//獲取許可權
private void getPermission() {
if (EasyPermissions.hasPermissions(this, permissions)) {
//已經開啟許可權
Toast.makeText(this, "已經申請相關許可權", Toast.LENGTH_SHORT).show();
} else {
//沒有開啟相關許可權、申請許可權
EasyPermissions.requestPermissions(this, "需要獲取您的相簿、照相使用許可權", 1, permissions);
}
}
2.3、實現介面
在所運用許可權申請的介面實現EasyPermissions.PermissionCallbacks介面
2.4、處理介面回撥的資料
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//框架要求必須這麼寫
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
}
//成功開啟許可權
@Override
public void onPermissionsGranted(int requestCode, @NonNull List<String> perms) {
Toast.makeText(this, "相關許可權獲取成功", Toast.LENGTH_SHORT).show();
}
//使用者未同意許可權
@Override
public void onPermissionsDenied(int requestCode, @NonNull List<String> perms) {
Toast.makeText(this, "請同意相關許可權,否則功能無法使用", Toast.LENGTH_SHORT).show();
}
相關文章
- Android開發在Activity外申請許可權呼叫相機開啟相簿Android
- Android 6.0、7.0、8.0、9.0適配Android
- Android 拍照及相簿選取圖片功能,已適配Android6.0、7.0、8.0Android
- android 6.0許可權機制的簡單封裝(支援批量申請許可權)Android封裝
- android 6.0許可權申請機制(簡單案例)Android
- Android:呼叫系統相機實現拍照+裁切(相容7.0以上系統)Android
- Android6.0許可權的動態適配Android
- Android6.0------許可權申請管理(單個許可權和多個許可權申請)Android
- 採坑之Android手機訪問相簿許可權問題Android
- Android property屬性許可權新增Android
- Android 6.0 在執行時請求許可權Android
- 原生Android之(6.0及以上)許可權申請Android
- mysql8.0新增使用者,並指定許可權MySql
- Android 6.0 執行時許可權管理最佳實踐Android
- 「Android6.0許可權適配| 掘金技術徵文 」Android
- Android 採用AOP方式封裝6.0許可權管理Android封裝
- Android 呼叫系統相機拍照 . 選取本地相簿Android
- Android 6.0 7.0 8.0三個版本Install Apk 採坑記錄AndroidAPK
- android實現拍照、相簿選圖、裁剪功能,相容7.0以及小米Android
- Android6.0動態許可權最簡單的解決方法Android
- Android app 線上更新那點事兒(適配Android6.0、7.0、8.0)AndroidAPP
- Android SELinux許可權AndroidLinux
- Android 通知許可權Android
- Android手機獲取Root許可權Android
- H5 file呼叫手機相機和相簿(相容安卓ios,親測有效)H5安卓iOS
- pg許可權相關
- u3d 呼叫android相機和相簿裁剪成圓形3DAndroid
- 安卓6.0以上從相簿選擇圖片,圖片壓縮及動態許可權安卓
- MySQL5.7&8.0許可權-角色管理MySql
- android動態許可權到自定義許可權框架Android框架
- android 許可權庫EasyPermissionsAndroid
- Android 中的危險許可權Android
- 呼叫者許可權與定義者許可權的pl/sql子程式SQL
- APP許可權相關的東西APP
- android7.0以上呼叫系統相機拍照並顯示到ImageView上AndroidView
- android permission 許可權與安全機制解析(下)Android
- android 許可權元件設計Android元件
- 探索Android Q上的位置許可權Android