Commit a2a0ecce by Kang Donghun

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

parent 56af714a
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_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.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <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.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
...@@ -41,8 +41,6 @@ ...@@ -41,8 +41,6 @@
android:name="${applicationId}.permission.C2D_MESSAGE" android:name="${applicationId}.permission.C2D_MESSAGE"
android:protectionLevel="signature" /> android:protectionLevel="signature" />
<!-- Android13 --> <!-- 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"/> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<!-- Android14 --> <!-- Android14 -->
<uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED"/> <uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED"/>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
android:versionName="1.0"> android:versionName="1.0">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <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_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH"/>
...@@ -13,7 +14,7 @@ ...@@ -13,7 +14,7 @@
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> <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.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使用権限 --> <!-- Wifi使用権限 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
......
...@@ -16,6 +16,7 @@ import android.graphics.Color; ...@@ -16,6 +16,7 @@ import android.graphics.Color;
import android.graphics.PixelFormat; import android.graphics.PixelFormat;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.net.Uri; import android.net.Uri;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment; import android.os.Environment;
import android.os.Handler; import android.os.Handler;
...@@ -945,9 +946,15 @@ public abstract class ABVActivity extends Activity { ...@@ -945,9 +946,15 @@ public abstract class ABVActivity extends Activity {
} }
private void showCameraOrAlbumSelectView(int requestCode , String title, String type, boolean cameraFlg) { private void showCameraOrAlbumSelectView(int requestCode , String title, String type, boolean cameraFlg) {
if (type.toLowerCase().equals(ABookKeys.IMAGE)) { if (type.equalsIgnoreCase(ABookKeys.IMAGE)) {
Intent galleryIntent = new Intent(MediaStore.ACTION_PICK_IMAGES); Intent galleryIntent = null;
galleryIntent.setType("image/*"); 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); Intent chooser = new Intent(Intent.ACTION_CHOOSER);
chooser.putExtra(Intent.EXTRA_INTENT, galleryIntent); chooser.putExtra(Intent.EXTRA_INTENT, galleryIntent);
...@@ -957,8 +964,8 @@ public abstract class ABVActivity extends Activity { ...@@ -957,8 +964,8 @@ public abstract class ABVActivity extends Activity {
ContentValues values = new ContentValues(); ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.MIME_TYPE, "image/jpeg"); values.put(MediaStore.MediaColumns.MIME_TYPE, "image/jpeg");
values.put(MediaStore.MediaColumns.DISPLAY_NAME, "camera_" + System.currentTimeMillis() + ".jpg"); 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( imageUri = getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
values values
...@@ -973,35 +980,16 @@ public abstract class ABVActivity extends Activity { ...@@ -973,35 +980,16 @@ public abstract class ABVActivity extends Activity {
} }
startActivityForResult(chooser, requestCode); startActivityForResult(chooser, requestCode);
// 여러 개 선택 가능하게 하고 싶으면 추가 } else if(type.equalsIgnoreCase(ABookKeys.VIDEO)) {
// intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, 1);
Intent galleryIntent = null;
// Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { // API 33 以上
// galleryIntent.setType("image/*"); galleryIntent = new Intent(MediaStore.ACTION_PICK_IMAGES);
// Intent chooser = new Intent(Intent.ACTION_CHOOSER); galleryIntent.setType("video/*");
// chooser.putExtra(Intent.EXTRA_INTENT, galleryIntent); } else { // API 32 以下
// chooser.putExtra(Intent.EXTRA_TITLE, title); galleryIntent = new Intent(Intent.ACTION_PICK);
// if (cameraFlg) { galleryIntent.setDataAndType(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, "video/*");
// }
// 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 선택만 허용
Intent chooser = new Intent(Intent.ACTION_CHOOSER); Intent chooser = new Intent(Intent.ACTION_CHOOSER);
chooser.putExtra(Intent.EXTRA_INTENT, galleryIntent); chooser.putExtra(Intent.EXTRA_INTENT, galleryIntent);
...@@ -1013,17 +1001,6 @@ public abstract class ABVActivity extends Activity { ...@@ -1013,17 +1001,6 @@ public abstract class ABVActivity extends Activity {
chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray); chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
} }
startActivityForResult(chooser, requestCode); 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 { ...@@ -89,8 +89,6 @@ public interface AppDefType {
//Android13から追加した権限追加 //Android13から追加した権限追加
String ANDROID_13_NOTIFICATION_PERMISSION_CHECK = "android13NotificationPermissionCheck"; String ANDROID_13_NOTIFICATION_PERMISSION_CHECK = "android13NotificationPermissionCheck";
String ANDROID_13_IMAGE_VIDEO_CHECK_PERMISSION_CHECK = "android13ImageVideoPermissionCheck";
String ANDROID_14_PERMISSION_CHECK = "android14PermissionCheck";
} }
interface SubMenuType { interface SubMenuType {
......
package jp.agentec.abook.abv.ui.home.helper; package jp.agentec.abook.abv.ui.home.helper;
import android.Manifest;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
...@@ -55,19 +56,6 @@ public class ABookPermissionHelper { ...@@ -55,19 +56,6 @@ public class ABookPermissionHelper {
public ArrayList<String> checkAndroidVersionUpPermissions() { public ArrayList<String> checkAndroidVersionUpPermissions() {
ArrayList<String> reqPermissions = new ArrayList<>(); ArrayList<String> reqPermissions = new ArrayList<>();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { //Android13以上 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); boolean chekcNotificationFlg = PreferenceUtil.getUserPref(mContext, AppDefType.UserPrefKey.ANDROID_13_NOTIFICATION_PERMISSION_CHECK, true);
if (chekcNotificationFlg){ if (chekcNotificationFlg){
if (ContextCompat.checkSelfPermission(mContext, if (ContextCompat.checkSelfPermission(mContext,
...@@ -78,19 +66,6 @@ public class ABookPermissionHelper { ...@@ -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; return reqPermissions;
} }
public ArrayList<String> checkMultiPermissions() { public ArrayList<String> checkMultiPermissions() {
...@@ -111,23 +86,6 @@ public class ABookPermissionHelper { ...@@ -111,23 +86,6 @@ public class ABookPermissionHelper {
} }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { //Android13以上 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { //Android13以上
if (ContextCompat.checkSelfPermission(mContext, 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) { android.Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
reqPermissions.add(android.Manifest.permission.POST_NOTIFICATIONS); reqPermissions.add(android.Manifest.permission.POST_NOTIFICATIONS);
PreferenceUtil.putUserPref(mContext, AppDefType.UserPrefKey.ANDROID_13_NOTIFICATION_PERMISSION_CHECK, false); PreferenceUtil.putUserPref(mContext, AppDefType.UserPrefKey.ANDROID_13_NOTIFICATION_PERMISSION_CHECK, false);
...@@ -179,20 +137,18 @@ public class ABookPermissionHelper { ...@@ -179,20 +137,18 @@ public class ABookPermissionHelper {
switch (mPermitionType) { switch (mPermitionType) {
case Constant.ABookPermissionType.ReadExternalStorage: case Constant.ABookPermissionType.ReadExternalStorage:
boolean permissionGranted = true; boolean permissionGranted = true;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { //Android14以上 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { //Android13以上
  • //Android13以上コメントが間違っているので修正お願いします。

Please register or sign in to reply
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) {
permissionGranted = false;
}
} else {
// ストレージ // ストレージ
if (ContextCompat.checkSelfPermission(mContext, android.Manifest.permission.READ_EXTERNAL_STORAGE) != PERMISSION_GRANTED || if (ContextCompat.checkSelfPermission(mContext, android.Manifest.permission.READ_EXTERNAL_STORAGE) != PERMISSION_GRANTED) {
ContextCompat.checkSelfPermission(mContext, android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PERMISSION_GRANTED) {
permissionGranted = false; permissionGranted = false;
} }
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {
// ストレージ
if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PERMISSION_GRANTED) {
permissionGranted = false;
}
}
} }
if (!permissionGranted) { if (!permissionGranted) {
if (mContext instanceof HTMLWebViewActivity || if (mContext instanceof HTMLWebViewActivity ||
......
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