2018-03-22代码工具整理系列

拍照后通知相册更新:

/**如果你存放的图片目录是getExternalFilesDir()则Media Scanner将无法访问到我们的图片这个目录只有APP可以使用,对外是隐藏的**/
        Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
        uri = Uri.fromFile(new File(mCurrentPhotoPath));
        intent.setData(uri);
        this.sendBroadcast(intent);

Android7.0访问本地目录FileProvider步骤

1.首先在res下创建xml资源文件夹,创建完成后添加filepath.xml,内容为:



   
    
    

2.在AndroidManifest.xml中和activity平级配置provider:

 
            
        
2018-03-22代码工具整理系列_第1张图片
如图所示

3.在activity中使用FileProvider:

/** 中间的参数必须和AndroidManifest中的android:authorities对应上**/
FileProvider.getUriForFile(this, "com.yunhujinrong.m.myapplication.fileprovider3", photoFile);

启动相机拍照

/** resolveActivity(),这个方法会返回能处理该Intent的第一个Activity(译注:即检查有没有能处理这个Intent的Activity)。执行这个检查非常重要,因为如果在调用[startActivityForResult()](http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int))时,没有应用能处理你的Intent,应用将会崩溃。
**/
if (intent.resolveActivity(getPackageManager()) != null) {
            photoFile = createFile();
            if (photoFile != null) {
                Uri uri = null;
                if (Build.VERSION.SDK_INT >= 24) {
                    uri = FileProvider.getUriForFile(this, "com.yunhujinrong.m.myapplication.fileprovider3", photoFile);
                } else {
                    uri = Uri.fromFile(photoFile);
                }
                intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
                camerAc.startActivityForResult(intent, GET_CAMERA_REQUESTCODE);
            }
        } else {
            throw new Exception("调用相机错误");
        }

你可能感兴趣的:(2018-03-22代码工具整理系列)