Commit d6231565 authored by qingt's avatar qingt

去除READ_MEDIA_IMAGES,防止卡审核

parent cab4eb95
......@@ -14,9 +14,9 @@
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
......
package com.ads.cal.picturetranslate;
import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
public class PermissionUtil {
public static void checkSelfIMAGEPermission(Activity activity, int requestCode) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
if (ContextCompat.checkSelfPermission(activity, android.Manifest.permission.READ_MEDIA_IMAGES)
!= PackageManager.PERMISSION_GRANTED) {
// 如果没有权限,请求权限
ActivityCompat.requestPermissions(activity,
new String[]{android.Manifest.permission.READ_MEDIA_IMAGES},
requestCode);
} else {
// 已经有权限,可以访问媒体图像文件
toSystemPhoto(activity, requestCode);
}
} else {
// 请求外部存储权限
if (ContextCompat.checkSelfPermission(activity, android.Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
// 如果没有权限,请求权限
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
requestCode);
} else {
// 已经有权限,可以继续处理逻辑
toSystemPhoto(activity, requestCode);
}
}
}
/**
* 打开系统图片选择器(使用 ACTION_GET_CONTENT,无需存储权限)
*
* @param activity 当前 Activity
* @param requestCode 请求码,用于 onActivityResult 回调
*/
public static void toSystemPhoto(Activity activity, int requestCode) {
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
activity.startActivityForResult(intent, requestCode);
}
......
......@@ -83,18 +83,13 @@ import java.io.File;
selectPhone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PermissionUtil.checkSelfIMAGEPermission(CameraActivity.this, SELECT_TAKE_PHONE);
PermissionUtil.toSystemPhoto(CameraActivity.this, SELECT_TAKE_PHONE);
}
});
}
private void initData() {
Uri firstImageUri = Util.getFirstImageUriFromGallery(this);
if (firstImageUri == null) {
return;
}
selectPhone.setImageURI(firstImageUri);
// 已移除 READ_MEDIA_IMAGES 权限,不再查询 MediaStore 获取相册缩略图
}
private void initCamera() {
......@@ -162,21 +157,7 @@ import java.io.File;
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == SELECT_TAKE_PHONE) {
if (allPermissionsGranted(grantResults)) {
PermissionUtil.toSystemPhoto(this, SELECT_TAKE_PHONE);
} else {
Toast.makeText(this, getString(R.string.app_toast_enable_permissions), Toast.LENGTH_SHORT).show();
}
}
}
private boolean allPermissionsGranted(int[] grantResults) {
return grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED;
}
/**
* 获取图片回调
......
......@@ -288,7 +288,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
@Override
protected void onStop() {
if (!isFinished) {
if (!isFinished && messenger != null) {
forceStart = true;
finish();
}
......@@ -641,11 +641,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
Toast.makeText(this, getString(R.string.app_toast_enable_permissions), Toast.LENGTH_SHORT).show();
}
} else if (requestCode == PICK_IMAGE_REQUEST) {
if (allPermissionsGranted(grantResults)) {
PermissionUtil.toSystemPhoto(this, PICK_IMAGE_REQUEST);
} else {
Toast.makeText(this, getString(R.string.app_toast_enable_permissions), Toast.LENGTH_SHORT).show();
}
// Photo Picker 模式不再需要权限检查
}
}
......@@ -658,7 +654,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
take_photo.setOnClickListener(v -> checkSelfPermission());
selectImg = findViewById(R.id.select_);
selectImg.setOnClickListener(v -> {
PermissionUtil.checkSelfIMAGEPermission(PictureTranslateListMainActivity.this, PICK_IMAGE_REQUEST);
PermissionUtil.toSystemPhoto(PictureTranslateListMainActivity.this, PICK_IMAGE_REQUEST);
});
recyclerView = findViewById(R.id.listData);
LinearLayoutManager layoutManager = new LinearLayoutManager(this, RecyclerView.VERTICAL, false);
......
......@@ -296,6 +296,7 @@ public class PictureTranslateShowPhotoActivity extends BaseActivity {
public static void startPictureTranslateShowPhotoActivity(Context context, Uri uri) {
Intent intent = new Intent(context, PictureTranslateShowPhotoActivity.class);
intent.putExtra("uri", uri);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
context.startActivity(intent);
}
}
......@@ -26,6 +26,7 @@
android:layout_marginEnd="51dp"
android:background="@drawable/app_white_corner_4"
android:padding="2dp"
android:src="@mipmap/app_icon_photo"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="@+id/take_photo"
app:layout_constraintEnd_toStartOf="@+id/take_photo"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment