android11 创建文件夹、拍照并回显

简介: android11 创建文件夹、拍照并回显

android11 创建文件夹、拍照并回显

创建文件夹

/**
     * 创建一个用于拍照图片输出路径的Uri (FileProvider)
     *
     * @param context
     * @return
     */
 public static Uri getUriForFile(Context context, File file) {
        return FileProvider.getUriForFile(context,  getFileProviderName(context), file);
    }
    /**
     * 获取一个临时的Uri, 文件名随机生成
     *
     * @param context
     * @return
     */
   public static Uri getTempUri(Context context) {
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
//android11 创建文件夹必须使用这种方式
   String timeStampStart= context.getExternalFilesDir(Environment.DIRECTORY_PICTURES).getAbsolutePath();
        File file = new File(timeStampStart + timeStamp + ".jpg");
 if (!file.getParentFile().exists()) {
            file.getParentFile().mkdirs();
        }
        return getUriForFile(context, file);
    }

拍照

//用于回显的Uri
   private Uri cameraUri;
//在onActivityResult 中判断 回显 cameraUri
private int REQUEST_TAKE_PHOTO=23;
//拍照
private void dispatchTakePictureIntent() {
        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);   
  if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY)) {
            // Create the File where the photo should go
                File photoFile = null;
            try {
                photoFile = createImageFile();
            } catch (IOException ex) {catch (IOException ex) {
                // Error occurred while creating the File
                Log.e("TAG", "dispatchTakePictureIntent: " + ex);
            }
if (photoFile != null) {
                cameraUri = FileProvider.getUriForFile(this,
                        AppUtils.getAppPackageName() + ".fileprovider",
                        photoFile);
  takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, cameraUri);
                startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
            }
     }
    }
/**
     * 将Uri 解析出文件绝对路径
     *
     * @param uri
     * @return
     */
 public static String parseOwnUri(Context context, Uri uri) {
        if (uri == null) {
            return null;
        }
    String path;
        if (TextUtils.equals(uri.getAuthority(),  getFileProviderName(context))) {
//camera_photos/ 要与<provider><provider/> 对应
            path = new File(uri.getPath().replace("camera_photos/", "")).getAbsolutePath();
        } else {
 path = uri.getPath();
        }
        return path;
    }
目录
相关文章
|
API Android开发 计算机视觉
视觉智能平台有android人脸识别拍照demo?
视觉智能平台有android人脸识别拍照demo么?
104 0
|
6月前
|
Linux Android开发
Android 内核关闭CAN 串口设备回显功能
Android 内核关闭CAN 串口设备回显功能
51 0
|
6月前
|
Android开发
Android 关于文件及文件夹的创建 、删除、重命名、复制拷贝
Android 关于文件及文件夹的创建 、删除、重命名、复制拷贝
52 0
|
存储 数据可视化 Android开发
Android 实现拍照功能,并将图片保存到本地存储
Android 实现拍照功能,并将图片保存到本地存储
697 0
|
XML Android开发 数据格式
Android drawable 与 mipmap 文件夹存放图片有区别
Android drawable 与 mipmap 文件夹存放图片有区别
85 0
|
存储 Java API
Android:这个需求搞懵了,产品说要实现富文本回显展示
在正向的截取思维下,正则表达式无疑是最简单的,富文本,无论是标签匹配还是内容以及属性,都可以使用正则进行简单的匹配,轻轻松松就能搞定,需要注意的是,不同属性的匹配规则是不一样的,需要根据特有的情况去分析。
110 0
|
Android开发
【Magisk模块】禁用Android 11-12应用文件夹限制
【Magisk模块】禁用Android 11-12应用文件夹限制
471 0
|
Java API Android开发
Android C++系列:访问Assets 文件夹.md
assets目录是Android的一种特殊目录,用于放置APP所需的固定文件,且该文件被打包到APK中时,不会被编码到二进制文件。 Android还存在一种放置在res下的raw目录,该目录与assets目录不同。
382 0
|
存储 XML 缓存
Android 更换用户头像(拍照、相册选取)
Android 更换用户头像(拍照、相册选取)
498 1
Android 更换用户头像(拍照、相册选取)
|
XML 存储 网络协议
【Android】使用Android开发应用过程中遇到ViewGroup的简单效以及aw和assets文件夹下的文件(Http协议的底层工作)
【Android】使用Android开发应用过程中遇到ViewGroup的简单效以及aw和assets文件夹下的文件(Http协议的底层工作)
158 0
【Android】使用Android开发应用过程中遇到ViewGroup的简单效以及aw和assets文件夹下的文件(Http协议的底层工作)