日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

android 拍照申请权限,Android拍照6.0以上动态获取权限

發布時間:2024/3/13 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 拍照申请权限,Android拍照6.0以上动态获取权限 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

## 前言===

在Android系統6.0以上拍照需要動態獲取權限,并且在獲取照片處理上也有些不同;

直接上代碼吧,就不再多說了。。。。。

具體實現

在res下新建xml文件夾,新建file_paths.xml文件

name="camera_photos"

path="." />

復制代碼

AndroidManifest文件中添加provider

android:name="android.support.v4.content.FileProvider"

android:authorities="com.example.mvptest.provider"

android:exported="false"

android:grantUriPermissions="true">

android:name="android.support.FILE_PROVIDER_PATHS"

android:resource="@xml/file_paths" />

復制代碼

判斷權限方法

/**

* 獲取權限

* @return

*/

private boolean hasPermission() {

if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED

|| ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED

|| ContextCompat.checkSelfPermission(this,Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.CAMERA}, PERMISSIONS_REQUEST_CODE);

return false;

}else {

return true;

}

}

復制代碼

權限回調判斷

@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

super.onRequestPermissionsResult(requestCode, permissions, grantResults);

switch (requestCode){

case PERMISSIONS_REQUEST_CODE:

if (grantResults.length > 0

&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {

//takePhoto();

selectImg();

}

break;

}

}

復制代碼

調用相機方法

/**

* 調用相機

*/

private void takePhoto(){

if (!hasPermission()){

return;

}

Intent intent = new Intent();

intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);

String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/img";

if (new File(path).exists()) {

try {

new File(path).createNewFile();

} catch (IOException e) {

e.printStackTrace();

}

}

@SuppressLint("SimpleDateFormat")

String filename = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());

mTmpFile = new File(path, filename + ".jpg");

mTmpFile.getParentFile().mkdirs();

Uri imageUri;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

String authority = getPackageName() + ".provider";

imageUri = FileProvider.getUriForFile(this, authority, mTmpFile);

} else {

imageUri = Uri.fromFile(mTmpFile);

}

intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

startActivityForResult(intent, CAMERA_REQUEST_CODE);

}

復制代碼

得到照片進行處理

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

switch (requestCode){

case CAMERA_REQUEST_CODE:

if (resultCode == RESULT_OK){

Bitmap photo = BitmapFactory.decodeFile(mTmpFile.getAbsolutePath());

imageView.setImageBitmap(photo);

}

break;

}

}

復制代碼

具體方法如上所示,若有什么問題,希望大家及時指正😊😊

總結

以上是生活随笔為你收集整理的android 拍照申请权限,Android拍照6.0以上动态获取权限的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。