Commit a2a0ecce by Kang Donghun

#69733 abookcheck android.permission.READ_MEDIA_VIDEO、android.permission.READ_MEDIA_IMAGES権限除対応

parent 56af714a
......@@ -8,8 +8,8 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="28"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
......@@ -41,8 +41,6 @@
android:name="${applicationId}.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<!-- Android13 -->
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<!-- Android14 -->
<uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED"/>
......
......@@ -6,6 +6,7 @@
android:versionName="1.0">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
......@@ -13,7 +14,7 @@
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
<!-- Wifi使用権限 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
......
......@@ -16,6 +16,7 @@ import android.graphics.Color;
import android.graphics.PixelFormat;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
......@@ -945,9 +946,15 @@ public abstract class ABVActivity extends Activity {
}
private void showCameraOrAlbumSelectView(int requestCode , String title, String type, boolean cameraFlg) {
if (type.toLowerCase().equals(ABookKeys.IMAGE)) {
Intent galleryIntent = new Intent(MediaStore.ACTION_PICK_IMAGES);
if (type.equalsIgnoreCase(ABookKeys.IMAGE)) {
Intent galleryIntent = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { // API 33 以上
galleryIntent = new Intent(MediaStore.ACTION_PICK_IMAGES);
galleryIntent.setType("image/*");
} else { // API 32 以下
galleryIntent = new Intent(Intent.ACTION_PICK);
galleryIntent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
}
Intent chooser = new Intent(Intent.ACTION_CHOOSER);
chooser.putExtra(Intent.EXTRA_INTENT, galleryIntent);
......@@ -957,7 +964,7 @@ public abstract class ABVActivity extends Activity {
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.MIME_TYPE, "image/jpeg");
values.put(MediaStore.MediaColumns.DISPLAY_NAME, "camera_" + System.currentTimeMillis() + ".jpg");
values.put(MediaStore.MediaColumns.RELATIVE_PATH, "Pictures/AbookCheck"); // 폴더명(없으면 생성됨)
values.put(MediaStore.MediaColumns.RELATIVE_PATH, "Pictures/AbookCheck");
imageUri = getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
......@@ -973,35 +980,16 @@ public abstract class ABVActivity extends Activity {
}
startActivityForResult(chooser, requestCode);
// 여러 개 선택 가능하게 하고 싶으면 추가
// intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, 1);
// Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
// galleryIntent.setType("image/*");
// Intent chooser = new Intent(Intent.ACTION_CHOOSER);
// chooser.putExtra(Intent.EXTRA_INTENT, galleryIntent);
// chooser.putExtra(Intent.EXTRA_TITLE, title);
// if (cameraFlg) {
//
// Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//
// ContentValues values = new ContentValues();
// values.put(MediaStore.MediaColumns.TITLE, "New Picture");
// values.put(MediaStore.Images.ImageColumns.DESCRIPTION, "From your Camera");
// imageUri = getContentResolver().insert(
// MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
// cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
//
// Intent[] intentArray = new Intent[]{cameraIntent};
// chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
// }
//
// startActivityForResult(chooser, requestCode);
} else if(type.toLowerCase().equals(ABookKeys.VIDEO)) {
Intent galleryIntent = new Intent(MediaStore.ACTION_PICK_IMAGES);
galleryIntent.setType("video/*"); // Video 선택만 허용
} else if(type.equalsIgnoreCase(ABookKeys.VIDEO)) {
Intent galleryIntent = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { // API 33 以上
galleryIntent = new Intent(MediaStore.ACTION_PICK_IMAGES);
galleryIntent.setType("video/*");
} else { // API 32 以下
galleryIntent = new Intent(Intent.ACTION_PICK);
galleryIntent.setDataAndType(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, "video/*");
}
Intent chooser = new Intent(Intent.ACTION_CHOOSER);
chooser.putExtra(Intent.EXTRA_INTENT, galleryIntent);
......@@ -1013,17 +1001,6 @@ public abstract class ABVActivity extends Activity {
chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
}
startActivityForResult(chooser, requestCode);
// Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
// galleryIntent.setType("video/*");
// Intent chooser = new Intent(Intent.ACTION_CHOOSER);
// chooser.putExtra(Intent.EXTRA_INTENT, galleryIntent);
// chooser.putExtra(Intent.EXTRA_TITLE, title);
// if (cameraFlg) {
// Intent cameraIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
// Intent[] intentArray = new Intent[]{cameraIntent};
// chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
// }
// startActivityForResult(chooser, requestCode);
}
}
......
......@@ -89,8 +89,6 @@ public interface AppDefType {
//Android13から追加した権限追加
String ANDROID_13_NOTIFICATION_PERMISSION_CHECK = "android13NotificationPermissionCheck";
String ANDROID_13_IMAGE_VIDEO_CHECK_PERMISSION_CHECK = "android13ImageVideoPermissionCheck";
String ANDROID_14_PERMISSION_CHECK = "android14PermissionCheck";
}
interface SubMenuType {
......
package jp.agentec.abook.abv.ui.home.helper;
import android.Manifest;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
......@@ -55,19 +56,6 @@ public class ABookPermissionHelper {
public ArrayList<String> checkAndroidVersionUpPermissions() {
ArrayList<String> reqPermissions = new ArrayList<>();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { //Android13以上
boolean chekcImageVideoFlg = PreferenceUtil.getUserPref(mContext, AppDefType.UserPrefKey.ANDROID_13_IMAGE_VIDEO_CHECK_PERMISSION_CHECK, true);
if (chekcImageVideoFlg) {
if (ContextCompat.checkSelfPermission(mContext,
android.Manifest.permission.READ_MEDIA_VIDEO) != PackageManager.PERMISSION_GRANTED) {
reqPermissions.add(android.Manifest.permission.READ_MEDIA_VIDEO);
}
if (ContextCompat.checkSelfPermission(mContext,
android.Manifest.permission.READ_MEDIA_IMAGES) != PackageManager.PERMISSION_GRANTED) {
reqPermissions.add(android.Manifest.permission.READ_MEDIA_IMAGES);
}
PreferenceUtil.putUserPref(mContext, AppDefType.UserPrefKey.ANDROID_13_IMAGE_VIDEO_CHECK_PERMISSION_CHECK, false);
}
boolean chekcNotificationFlg = PreferenceUtil.getUserPref(mContext, AppDefType.UserPrefKey.ANDROID_13_NOTIFICATION_PERMISSION_CHECK, true);
if (chekcNotificationFlg){
if (ContextCompat.checkSelfPermission(mContext,
......@@ -78,19 +66,6 @@ public class ABookPermissionHelper {
}
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { //Android14以上
boolean android14PermissionCheckFlg = PreferenceUtil.getUserPref(mContext, AppDefType.UserPrefKey.ANDROID_14_PERMISSION_CHECK, true);
if (android14PermissionCheckFlg) {
if (ContextCompat.checkSelfPermission(mContext,
android.Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED) != PackageManager.PERMISSION_GRANTED) {
reqPermissions.add(android.Manifest.permission.READ_MEDIA_VIDEO);
reqPermissions.add(android.Manifest.permission.READ_MEDIA_IMAGES);
reqPermissions.add(android.Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED);
}
PreferenceUtil.putUserPref(mContext, AppDefType.UserPrefKey.ANDROID_14_PERMISSION_CHECK, false);
}
}
return reqPermissions;
}
public ArrayList<String> checkMultiPermissions() {
......@@ -111,23 +86,6 @@ public class ABookPermissionHelper {
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { //Android13以上
if (ContextCompat.checkSelfPermission(mContext,
android.Manifest.permission.READ_MEDIA_VIDEO) != PackageManager.PERMISSION_GRANTED) {
reqPermissions.add(android.Manifest.permission.READ_MEDIA_VIDEO);
PreferenceUtil.putUserPref(mContext, AppDefType.UserPrefKey.ANDROID_13_IMAGE_VIDEO_CHECK_PERMISSION_CHECK, false);
}
if (ContextCompat.checkSelfPermission(mContext,
android.Manifest.permission.READ_MEDIA_IMAGES) != PackageManager.PERMISSION_GRANTED) {
reqPermissions.add(android.Manifest.permission.READ_MEDIA_IMAGES);
PreferenceUtil.putUserPref(mContext, AppDefType.UserPrefKey.ANDROID_13_IMAGE_VIDEO_CHECK_PERMISSION_CHECK, false);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { //Android14以上
if (ContextCompat.checkSelfPermission(mContext,
android.Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED) != PackageManager.PERMISSION_GRANTED) {
reqPermissions.add(android.Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED);
PreferenceUtil.putUserPref(mContext, AppDefType.UserPrefKey.ANDROID_14_PERMISSION_CHECK, false);
}
}
if (ContextCompat.checkSelfPermission(mContext,
android.Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
reqPermissions.add(android.Manifest.permission.POST_NOTIFICATIONS);
PreferenceUtil.putUserPref(mContext, AppDefType.UserPrefKey.ANDROID_13_NOTIFICATION_PERMISSION_CHECK, false);
......@@ -179,21 +137,19 @@ public class ABookPermissionHelper {
switch (mPermitionType) {
case Constant.ABookPermissionType.ReadExternalStorage:
boolean permissionGranted = true;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { //Android14以上
if (ContextCompat.checkSelfPermission(mContext, android.Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED) != PERMISSION_GRANTED) {
permissionGranted = false;
}
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { //Android13以上
if (ContextCompat.checkSelfPermission(mContext, android.Manifest.permission.READ_MEDIA_IMAGES) != PERMISSION_GRANTED) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { //Android13以上
// ストレージ
if (ContextCompat.checkSelfPermission(mContext, android.Manifest.permission.READ_EXTERNAL_STORAGE) != PERMISSION_GRANTED) {
permissionGranted = false;
}
} else {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {
// ストレージ
if (ContextCompat.checkSelfPermission(mContext, android.Manifest.permission.READ_EXTERNAL_STORAGE) != PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission(mContext, android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PERMISSION_GRANTED) {
if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PERMISSION_GRANTED) {
permissionGranted = false;
}
}
}
if (!permissionGranted) {
if (mContext instanceof HTMLWebViewActivity ||
mContext instanceof OperationListActivity ||
......
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