Commit d6231565 authored by qingt's avatar qingt

去除READ_MEDIA_IMAGES,防止卡审核

parent cab4eb95
...@@ -14,9 +14,9 @@ ...@@ -14,9 +14,9 @@
<uses-permission <uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28" /> 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.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.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
......
package com.ads.cal.picturetranslate; package com.ads.cal.picturetranslate;
import android.Manifest;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; 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 class PermissionUtil {
public static void checkSelfIMAGEPermission(Activity activity, int requestCode) { /**
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { * 打开系统图片选择器(使用 ACTION_GET_CONTENT,无需存储权限)
if (ContextCompat.checkSelfPermission(activity, android.Manifest.permission.READ_MEDIA_IMAGES) *
!= PackageManager.PERMISSION_GRANTED) { * @param activity 当前 Activity
// 如果没有权限,请求权限 * @param requestCode 请求码,用于 onActivityResult 回调
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);
}
}
}
public static void toSystemPhoto(Activity activity, int requestCode) { 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); activity.startActivityForResult(intent, requestCode);
} }
......
...@@ -83,18 +83,13 @@ import java.io.File; ...@@ -83,18 +83,13 @@ import java.io.File;
selectPhone.setOnClickListener(new View.OnClickListener() { selectPhone.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
PermissionUtil.checkSelfIMAGEPermission(CameraActivity.this, SELECT_TAKE_PHONE); PermissionUtil.toSystemPhoto(CameraActivity.this, SELECT_TAKE_PHONE);
} }
}); });
} }
private void initData() { private void initData() {
Uri firstImageUri = Util.getFirstImageUriFromGallery(this); // 已移除 READ_MEDIA_IMAGES 权限,不再查询 MediaStore 获取相册缩略图
if (firstImageUri == null) {
return;
}
selectPhone.setImageURI(firstImageUri);
} }
private void initCamera() { private void initCamera() {
...@@ -162,21 +157,7 @@ import java.io.File; ...@@ -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 ...@@ -288,7 +288,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
@Override @Override
protected void onStop() { protected void onStop() {
if (!isFinished) { if (!isFinished && messenger != null) {
forceStart = true; forceStart = true;
finish(); finish();
} }
...@@ -641,11 +641,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac ...@@ -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(); Toast.makeText(this, getString(R.string.app_toast_enable_permissions), Toast.LENGTH_SHORT).show();
} }
} else if (requestCode == PICK_IMAGE_REQUEST) { } else if (requestCode == PICK_IMAGE_REQUEST) {
if (allPermissionsGranted(grantResults)) { // Photo Picker 模式不再需要权限检查
PermissionUtil.toSystemPhoto(this, PICK_IMAGE_REQUEST);
} else {
Toast.makeText(this, getString(R.string.app_toast_enable_permissions), Toast.LENGTH_SHORT).show();
}
} }
} }
...@@ -658,7 +654,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac ...@@ -658,7 +654,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
take_photo.setOnClickListener(v -> checkSelfPermission()); take_photo.setOnClickListener(v -> checkSelfPermission());
selectImg = findViewById(R.id.select_); selectImg = findViewById(R.id.select_);
selectImg.setOnClickListener(v -> { selectImg.setOnClickListener(v -> {
PermissionUtil.checkSelfIMAGEPermission(PictureTranslateListMainActivity.this, PICK_IMAGE_REQUEST); PermissionUtil.toSystemPhoto(PictureTranslateListMainActivity.this, PICK_IMAGE_REQUEST);
}); });
recyclerView = findViewById(R.id.listData); recyclerView = findViewById(R.id.listData);
LinearLayoutManager layoutManager = new LinearLayoutManager(this, RecyclerView.VERTICAL, false); LinearLayoutManager layoutManager = new LinearLayoutManager(this, RecyclerView.VERTICAL, false);
......
...@@ -296,6 +296,7 @@ public class PictureTranslateShowPhotoActivity extends BaseActivity { ...@@ -296,6 +296,7 @@ public class PictureTranslateShowPhotoActivity extends BaseActivity {
public static void startPictureTranslateShowPhotoActivity(Context context, Uri uri) { public static void startPictureTranslateShowPhotoActivity(Context context, Uri uri) {
Intent intent = new Intent(context, PictureTranslateShowPhotoActivity.class); Intent intent = new Intent(context, PictureTranslateShowPhotoActivity.class);
intent.putExtra("uri", uri); intent.putExtra("uri", uri);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
context.startActivity(intent); context.startActivity(intent);
} }
} }
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
android:layout_marginEnd="51dp" android:layout_marginEnd="51dp"
android:background="@drawable/app_white_corner_4" android:background="@drawable/app_white_corner_4"
android:padding="2dp" android:padding="2dp"
android:src="@mipmap/app_icon_photo"
android:scaleType="centerCrop" android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="@+id/take_photo" app:layout_constraintBottom_toBottomOf="@+id/take_photo"
app:layout_constraintEnd_toStartOf="@+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