This commit is contained in:
2023-10-05 14:12:03 +08:00
parent 41b5ab93dc
commit d82f89f11c
63 changed files with 2221 additions and 323 deletions

View File

@@ -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;
}