update
This commit is contained in:
@@ -6,6 +6,7 @@ import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.provider.MediaStore;
|
||||
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.core.content.FileProvider;
|
||||
|
||||
@@ -36,9 +37,20 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
||||
private File mCorpResult;//裁剪后得到的图片
|
||||
private ImageResultCallback mResultCallback;
|
||||
private boolean mNeedCrop;//是否需要裁剪
|
||||
private String authority = "com.pdlive.shayu.fileprovider";
|
||||
|
||||
public ProcessImageUtil(FragmentActivity activity, String authority) {
|
||||
super(activity);
|
||||
this.authority = authority;
|
||||
init(activity);
|
||||
}
|
||||
|
||||
public ProcessImageUtil(FragmentActivity activity) {
|
||||
super(activity);
|
||||
init(activity);
|
||||
}
|
||||
|
||||
private void init(FragmentActivity activity) {
|
||||
mContext = activity;
|
||||
mCameraPermissions = new String[]{
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||
@@ -67,7 +79,7 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
||||
if (mNeedCrop) {
|
||||
Uri uri = null;
|
||||
if (Build.VERSION.SDK_INT >= 24) {
|
||||
uri = FileProvider.getUriForFile(mContext, "com.pdlive.shayu.fileprovider", mCameraResult);
|
||||
uri = FileProvider.getUriForFile(mContext, authority, mCameraResult);
|
||||
} else {
|
||||
uri = Uri.fromFile(mCameraResult);
|
||||
}
|
||||
@@ -147,14 +159,16 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
||||
mCameraResult = getNewFile();
|
||||
Uri uri = null;
|
||||
if (Build.VERSION.SDK_INT >= 24) {
|
||||
uri = FileProvider.getUriForFile(mContext, "com.pdlive.shayu.fileprovider", mCameraResult);
|
||||
uri = FileProvider.getUriForFile(mContext, authority, mCameraResult);
|
||||
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
|
||||
} else {
|
||||
uri = Uri.fromFile(mCameraResult);
|
||||
}
|
||||
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
|
||||
startActivityForResult(intent, mCameraResultCallback);
|
||||
}catch (Exception e){e.printStackTrace();}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private File getNewFile() {
|
||||
@@ -200,7 +214,7 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
||||
startActivityForResult(intent, mCropResultCallback);
|
||||
} catch (Exception e) {
|
||||
try {
|
||||
Uri resultUri = FileProvider.getUriForFile(mContext, "com.pdlive.shayu.fileprovider", mCorpResult);
|
||||
Uri resultUri = FileProvider.getUriForFile(mContext, authority, mCorpResult);
|
||||
if (resultUri == null || mFragment == null || mContext == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user