权限控制

This commit is contained in:
jia 2024-12-07 22:38:19 +08:00
parent 75d4f0eaec
commit 7f655581a9
9 changed files with 280 additions and 80 deletions

View File

@ -26,5 +26,5 @@ android.enableJetifier=true
android.useAndroidX=true android.useAndroidX=true
android.useDeprecatedNdk=true android.useDeprecatedNdk=true
versionCode=40 versionCode=58
versionName=4.11.3 versionName=4.11.17.3

View File

@ -21,8 +21,9 @@
<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_COARSE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <!-- // jiablue-->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> <!-- <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />-->
<!-- <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />-->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
@ -86,13 +87,14 @@
<!-- 蓝牙权限需求 --> <!-- 蓝牙权限需求 -->
<uses-permission android:name="android.permission.BLUETOOTH" /> <!-- // jiablue-->
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <!-- 安卓12新增的蓝牙权限 --> <!-- <uses-permission android:name="android.permission.BLUETOOTH" />-->
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" /> <!-- <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> &lt;!&ndash; 安卓12新增的蓝牙权限 &ndash;&gt;-->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <!-- <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />-->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> <!-- 定位权限, 蓝牙搜索需要 --> <!-- <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- <uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> &lt;!&ndash; 定位权限, 蓝牙搜索需要 &ndash;&gt;-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />-->
<!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />-->
<!-- 使用相机 --> <!-- 使用相机 -->
<!-- <!--
<uses-feature <uses-feature

View File

@ -46,14 +46,15 @@ public class BindTwoDeviceActivity extends BaseActivity {
setContentView(R.layout.bindtwodevice_activity); setContentView(R.layout.bindtwodevice_activity);
initTitle("选择设备"); initTitle("选择设备");
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){
perlist = new String[]{ // jiablue
android.Manifest.permission.BLUETOOTH_SCAN, // perlist = new String[]{
android.Manifest.permission.BLUETOOTH_ADVERTISE, // android.Manifest.permission.BLUETOOTH_SCAN,
android.Manifest.permission.BLUETOOTH_CONNECT, // android.Manifest.permission.BLUETOOTH_ADVERTISE,
android.Manifest.permission.ACCESS_FINE_LOCATION, // android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.ACCESS_COARSE_LOCATION, // android.Manifest.permission.ACCESS_FINE_LOCATION,
android.Manifest.permission.BLUETOOTH // android.Manifest.permission.ACCESS_COARSE_LOCATION,
}; // android.Manifest.permission.BLUETOOTH
// };
} }
initView();//初始化控件 initView();//初始化控件
} }

View File

@ -7,9 +7,11 @@
*/ */
package com.ifish.activity; package com.ifish.activity;
import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
import android.app.Fragment; import android.app.Fragment;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.net.Uri; import android.net.Uri;
@ -29,6 +31,8 @@ import android.widget.ImageView;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.ifish.basebean.BaseBean; import com.ifish.basebean.BaseBean;
import com.ifish.basebean.EventBean; import com.ifish.basebean.EventBean;
@ -36,6 +40,8 @@ import com.ifish.basebean.LoadHeadImage;
import com.ifish.basebean.User; import com.ifish.basebean.User;
import com.ifish.baseclass.BaseActivity; import com.ifish.baseclass.BaseActivity;
import com.ifish.baseclass.UriForFile; import com.ifish.baseclass.UriForFile;
import com.ifish.fragment.DeviceFragment;
import com.ifish.permission.PermissionHelper;
import com.ifish.utils.AnimationUtil; import com.ifish.utils.AnimationUtil;
import com.ifish.utils.AppUtil; import com.ifish.utils.AppUtil;
import com.ifish.utils.Commons; import com.ifish.utils.Commons;
@ -96,7 +102,9 @@ public class MineActivity extends BaseActivity {
boolean userNameFlag = true; boolean userNameFlag = true;
private CountDownTimer LoadingTimer; private CountDownTimer LoadingTimer;
private SPUtil sp; private SPUtil sp;
private PermissionHelper permissionHelper;
String[] permission;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
@ -106,6 +114,8 @@ public class MineActivity extends BaseActivity {
sp = SPUtil.getInstance(this); sp = SPUtil.getInstance(this);
initView(); initView();
initListener(); initListener();
permission = AppUtil.getImagePermissionList();
permissionHelper = new PermissionHelper(this, permission, 250);
} }
private void initView() { private void initView() {
@ -280,6 +290,10 @@ public class MineActivity extends BaseActivity {
private void changeHead() { private void changeHead() {
if (!permissionHelper.checkSelfPermission(permission)) {
getPermission();
return;
}
gallery(); gallery();
// final Dialog dialogHead = new Dialog(MineActivity.this, R.style.HOLOMyDialogs); // final Dialog dialogHead = new Dialog(MineActivity.this, R.style.HOLOMyDialogs);
// dialogHead.show(); // dialogHead.show();
@ -704,5 +718,77 @@ public class MineActivity extends BaseActivity {
} }
} }
private void getPermission() {
permissionHelper.request(new PermissionHelper.PermissionCallback() {
@Override
public void onPermissionGranted() {
} }
@Override
public void onIndividualPermissionGranted(String[] grantedPermission) {
AlertDialog.Builder dialog = new AlertDialog.Builder(MineActivity.this);
dialog.setCancelable(false);
dialog.setMessage("请先同意app获取权限");
dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
}
});
dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.show();
}
@Override
public void onPermissionDenied() {
AlertDialog.Builder dialog = new AlertDialog.Builder(MineActivity.this);
dialog.setCancelable(false);
dialog.setMessage("请先同意app获取权限");
dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
getPermission();
}
});
dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.show();
}
@Override
public void onPermissionDeniedBySystem() {
AlertDialog.Builder dialog = new AlertDialog.Builder(MineActivity.this);
dialog.setCancelable(false);
dialog.setTitle("温馨提示");
// dialog.setMessage("请到应用管理-爱鱼奇-应用权限页面开启权限后重新打开app");
dialog.setMessage("请到应用信息页面-权限管理-打开存储和相机权限");
dialog.setPositiveButton("去开启", (dialog1, which) -> {
AppUtil.toAuthority(MineActivity.this);
});
dialog.setNegativeButton("取消", (dialog12, which) -> {
});
dialog.show();
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (permissionHelper != null) {
permissionHelper.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
}

View File

@ -148,7 +148,8 @@ public class BottomChoiceDialog extends DialogFragment implements View.OnClickLi
lineAirKiss.setVisibility(View.VISIBLE); lineAirKiss.setVisibility(View.VISIBLE);
lineAP.setVisibility(View.VISIBLE); lineAP.setVisibility(View.VISIBLE);
lineSmartConfig.setVisibility(View.GONE); lineSmartConfig.setVisibility(View.GONE);
lineBle.setVisibility(View.VISIBLE); // jiablue 暂时隐藏
lineBle.setVisibility(View.GONE);
switch (curConnectType) { switch (curConnectType) {
case SmartConfig: case SmartConfig:
// 处理SmartConfig逻辑 // 处理SmartConfig逻辑

View File

@ -10,9 +10,9 @@ public class EventBean {
public String name; public String name;
public String value; public String value;
public int index = 0; public int index = 0;
// jiablue
public static String BLUETOOTH_START_SCAN = "start_scan"; // public static String BLUETOOTH_START_SCAN = "start_scan";
public static String BLUETOOTH_STOP_SCAN = "stop_scan"; // public static String BLUETOOTH_STOP_SCAN = "stop_scan";
public static String TAB_INDEX = "tab_index"; public static String TAB_INDEX = "tab_index";
public static String LINK_FINISH = "link_finish"; public static String LINK_FINISH = "link_finish";
public static String CHANGE_DEVICE_NAME = "change_device_name"; public static String CHANGE_DEVICE_NAME = "change_device_name";

View File

@ -133,8 +133,9 @@ public class BaseApplication extends MultiDexApplication {
if (count==0){ if (count==0){
Activity activityName = ActivityManager.getInstance().lastActivity(); Activity activityName = ActivityManager.getInstance().lastActivity();
if (activityName!=null && activityName.toString().contains("MainTabActivity")){ if (activityName!=null && activityName.toString().contains("MainTabActivity")){
EventBean eventBean = new EventBean(EventBean.BLUETOOTH_START_SCAN); // jiablue
EventBus.getDefault().post(eventBean); // EventBean eventBean = new EventBean(EventBean.BLUETOOTH_START_SCAN);
// EventBus.getDefault().post(eventBean);
} }
} }
count++; count++;
@ -157,8 +158,9 @@ public class BaseApplication extends MultiDexApplication {
if (count==0){ if (count==0){
Activity activityName = ActivityManager.getInstance().lastActivity(); Activity activityName = ActivityManager.getInstance().lastActivity();
if (activityName!=null && activityName.toString().contains("MainTabActivity")){ if (activityName!=null && activityName.toString().contains("MainTabActivity")){
EventBean eventBean = new EventBean(EventBean.BLUETOOTH_STOP_SCAN); // jiablue
EventBus.getDefault().post(eventBean); // EventBean eventBean = new EventBean(EventBean.BLUETOOTH_STOP_SCAN);
// EventBus.getDefault().post(eventBean);
} }
} }
} }

View File

@ -211,9 +211,9 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
adInfos(); adInfos();
initInformation(); initInformation();
permission = AppUtil.getPermissionList(); permission = new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION};
permissionHelper = new PermissionHelper(DeviceFragment.this, permission, 250); permissionHelper = new PermissionHelper(DeviceFragment.this, permission, 250);
initBooth(); // initBooth();
return v; return v;
} }
@ -271,8 +271,9 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
public void onPermissionDeniedBySystem() { public void onPermissionDeniedBySystem() {
AlertDialog.Builder dialog = new AlertDialog.Builder(getContext()); AlertDialog.Builder dialog = new AlertDialog.Builder(getContext());
dialog.setCancelable(false); dialog.setCancelable(false);
dialog.setTitle("温馨提示");
// dialog.setMessage("请到应用管理-爱鱼奇-应用权限页面开启权限后重新打开app"); // dialog.setMessage("请到应用管理-爱鱼奇-应用权限页面开启权限后重新打开app");
dialog.setMessage("请到应用信息页面-权限管理-打开位置和相机权限"); dialog.setMessage("请到应用信息页面-权限管理-打开位置权限,不然是发现不了附近的wifi的将无法进行配网连接您的智能设备");
dialog.setPositiveButton("去开启", (dialog1, which) -> { dialog.setPositiveButton("去开启", (dialog1, which) -> {
// Intent mItent = new Intent(Settings.ACTION_SETTINGS); // Intent mItent = new Intent(Settings.ACTION_SETTINGS);
// startActivity(mItent); // startActivity(mItent);
@ -1078,7 +1079,9 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
lv_device.setAdapter(deviceAdapter); lv_device.setAdapter(deviceAdapter);
lv_camera.setAdapter(cameraAdapter); lv_camera.setAdapter(cameraAdapter);
setUserInfo(); setUserInfo();
startDownTimer();
// jiablue
// startDownTimer();
} }
@ -1111,10 +1114,10 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
lv_device.setOnItemClickListener(new AdapterView.OnItemClickListener() { lv_device.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override @Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (!permissionHelper.checkSelfPermission(permission)) { // if (!permissionHelper.checkSelfPermission(permission)) {
getPermission(); // getPermission();
return; // return;
} // }
if (Commons.DEVICE == null || Commons.DEVICE.size() == 0) { if (Commons.DEVICE == null || Commons.DEVICE.size() == 0) {
showDevice = PetDeviceGetDistinguish.getShowDevice(getContext()); showDevice = PetDeviceGetDistinguish.getShowDevice(getContext());
showCamera = PetDeviceGetDistinguish.getFishCameras(Commons.CAMERA); showCamera = PetDeviceGetDistinguish.getFishCameras(Commons.CAMERA);
@ -1228,10 +1231,10 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
lv_camera.setOnItemClickListener(new AdapterView.OnItemClickListener() { lv_camera.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override @Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (!permissionHelper.checkSelfPermission(permission)) { // if (!permissionHelper.checkSelfPermission(permission)) {
getPermission(); // getPermission();
return; // return;
} // }
if (Commons.CAMERA == null) { if (Commons.CAMERA == null) {
return; return;
} }
@ -1536,9 +1539,9 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
AnimationUtil.startAnimation(getActivity()); AnimationUtil.startAnimation(getActivity());
break; break;
case R.id.rl_adddevice: case R.id.rl_adddevice:
// jiablue
EventBean eventBean = new EventBean(EventBean.BLUETOOTH_STOP_SCAN); // EventBean eventBean = new EventBean(EventBean.BLUETOOTH_STOP_SCAN);
EventBus.getDefault().post(eventBean); // EventBus.getDefault().post(eventBean);
if (!permissionHelper.checkSelfPermission(permission)) { if (!permissionHelper.checkSelfPermission(permission)) {
getPermission(); getPermission();
@ -1920,34 +1923,33 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
private boolean isShowEd = false; private boolean isShowEd = false;
private int currentIndex = 0; private int currentIndex = 0;
public void onEventMainThread(EventBean eventBean){ // jiablue
if (eventBean!= null){ // public void onEventMainThread(EventBean eventBean){
if (EventBean.BLUETOOTH_START_SCAN.equals(eventBean.name)){ // if (eventBean!= null){
// ToastUtil.show(requireActivity(),isShowEd+"show"); // if (EventBean.BLUETOOTH_START_SCAN.equals(eventBean.name)){
if (!isShowEd){ // if (!isShowEd){
// ToastUtil.show(requireActivity(),"re scaan"); // initBooth();
initBooth(); // }
} // }else if (EventBean.BLUETOOTH_STOP_SCAN.equals(eventBean.name)){
}else if (EventBean.BLUETOOTH_STOP_SCAN.equals(eventBean.name)){ // if (!isShowIng){
// ToastUtil.show(requireActivity(),"hide"); // currentDevice = null;
// L.i("jjia----------hide=="); // }
if (!isShowIng){ // BleManager.getInstance().cancelScan();
currentDevice = null; // }else
} //
BleManager.getInstance().cancelScan(); // if (EventBean.TAB_INDEX.equals(eventBean.name)){
}else if (EventBean.TAB_INDEX.equals(eventBean.name)){ // currentIndex = eventBean.index;
currentIndex = eventBean.index; // L.i("jjia-----tab_index--"+eventBean.index);
L.i("jjia-----tab_index--"+eventBean.index); // if (currentIndex == 0){
if (currentIndex == 0){ // startDownTimer();
startDownTimer(); // }else {
}else { // oonPause();
oonPause(); // }
} // }else if (EventBean.HEADER.equals(eventBean.name)){
}else if (EventBean.HEADER.equals(eventBean.name)){ // Glide.with(getActivity()).load(eventBean.value).into(iv_head);
Glide.with(getActivity()).load(eventBean.value).into(iv_head); // }
} // }
} // }
}
public void showDevice(){ public void showDevice(){
// 检测页面 // 检测页面

View File

@ -76,6 +76,13 @@ public class AppUtil {
intent.setData(Uri.fromParts("package", context.getPackageName(), null)); intent.setData(Uri.fromParts("package", context.getPackageName(), null));
context.startActivity(intent); context.startActivity(intent);
} }
private static void toPermission(Activity context) {
Intent intent =new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS") ;
intent.setData(Uri.fromParts("package", context.getPackageName(), null));
context.startActivity(intent);
}
private static void gotoOppoPermission(ComponentActivity context) { private static void gotoOppoPermission(ComponentActivity context) {
try { try {
@ -93,6 +100,22 @@ public class AppUtil {
toPermission(context); toPermission(context);
} }
} }
private static void gotoOppoPermission(Activity context) {
try {
Intent intent =new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("packageName", context.getPackageName());
ComponentName comp =new ComponentName(
"com.color.safecenter",
"com.color.safecenter.permission.PermissionManagerActivity"
);
intent.setComponent(comp);
context.startActivity(intent);
} catch ( Exception e) {
toPermission(context);
}
}
private static void gotoMiuiPermission(ComponentActivity context) { private static void gotoMiuiPermission(ComponentActivity context) {
Intent i = new Intent("miui.intent.action.APP_PERM_EDITOR"); Intent i = new Intent("miui.intent.action.APP_PERM_EDITOR");
@ -109,6 +132,21 @@ public class AppUtil {
toPermission(context); toPermission(context);
} }
} }
private static void gotoMiuiPermission(Activity context) {
Intent i = new Intent("miui.intent.action.APP_PERM_EDITOR");
ComponentName componentName =new ComponentName(
"com.miui.securitycenter",
"com.miui.permcenter.permissions.PermissionsEditorActivity"
);
i.setComponent(componentName);
i.putExtra("extra_pkgname", context.getPackageName());
try {
context.startActivity(i);
} catch ( Exception e) {
e.printStackTrace();
toPermission(context);
}
}
private static void gotoMeizuPermission(ComponentActivity context) { private static void gotoMeizuPermission(ComponentActivity context) {
Intent intent = new Intent("com.meizu.safe.security.SHOW_APPSEC"); Intent intent = new Intent("com.meizu.safe.security.SHOW_APPSEC");
@ -121,6 +159,17 @@ public class AppUtil {
toPermission(context); toPermission(context);
} }
} }
private static void gotoMeizuPermission(Activity context) {
Intent intent = new Intent("com.meizu.safe.security.SHOW_APPSEC");
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.putExtra("packageName", context.getPackageName());
try {
context.startActivity(intent);
} catch (java.lang.Exception e) {
e.printStackTrace();
toPermission(context);
}
}
private static void gotoHuaweiPermission(ComponentActivity context) { private static void gotoHuaweiPermission(ComponentActivity context) {
try { try {
@ -137,6 +186,21 @@ public class AppUtil {
toPermission(context); toPermission(context);
} }
} }
private static void gotoHuaweiPermission(Activity context) {
try {
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ComponentName comp =new ComponentName(
"com.huawei.systemmanager",
"com.huawei.permissionmanager.ui.MainActivity"
) ;//华为权限管理
intent.setComponent(comp) ;
context.startActivity(intent);
} catch ( java.lang.Exception e) {
e.printStackTrace();
toPermission(context);
}
}
public static void toAuthority(ComponentActivity context) { public static void toAuthority(ComponentActivity context) {
@ -155,6 +219,23 @@ public class AppUtil {
} }
} }
public static void toAuthority(Activity context) {
if (isBrandXiaoMi()){
gotoMiuiPermission(context);
}else if (isBrandMeizu()){
gotoMeizuPermission(context);
}else if (isBrandHuawei()){
gotoHuaweiPermission(context);
}else if(isBrandOnePlus()){
gotoOppoPermission(context);
}else if (isBrandOppo()){
gotoOppoPermission(context);
}else {
toPermission(context);
}
}
/** /**
* 检测手机是否支持4.0蓝牙 * 检测手机是否支持4.0蓝牙
* @param context 上下文 * @param context 上下文
@ -183,21 +264,46 @@ public class AppUtil {
List<String> perList = new ArrayList<>(); List<String> perList = new ArrayList<>();
perList.add(android.Manifest.permission.CAMERA); perList.add(android.Manifest.permission.CAMERA);
perList.add(android.Manifest.permission.ACCESS_FINE_LOCATION); perList.add(android.Manifest.permission.ACCESS_FINE_LOCATION);
perList.add(android.Manifest.permission.READ_PHONE_STATE); // perList.add(android.Manifest.permission.READ_PHONE_STATE);
perList.add(android.Manifest.permission.BLUETOOTH); // jiablue
perList.add(android.Manifest.permission.ACCESS_COARSE_LOCATION); // perList.add(android.Manifest.permission.BLUETOOTH);
perList.add(android.Manifest.permission.ACCESS_FINE_LOCATION); // perList.add(android.Manifest.permission.ACCESS_COARSE_LOCATION);
// perList.add(android.Manifest.permission.ACCESS_FINE_LOCATION);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
perList.add(android.Manifest.permission.READ_MEDIA_IMAGES); perList.add(android.Manifest.permission.READ_MEDIA_IMAGES);
perList.add(android.Manifest.permission.READ_MEDIA_VIDEO); perList.add(android.Manifest.permission.READ_MEDIA_VIDEO);
perList.add(android.Manifest.permission.BLUETOOTH_SCAN); // jiablue
perList.add(android.Manifest.permission.BLUETOOTH_ADVERTISE); // perList.add(android.Manifest.permission.BLUETOOTH_SCAN);
perList.add(android.Manifest.permission.BLUETOOTH_CONNECT); // perList.add(android.Manifest.permission.BLUETOOTH_ADVERTISE);
// perList.add(android.Manifest.permission.BLUETOOTH_CONNECT);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){
// jiablue
// perList.add(android.Manifest.permission.BLUETOOTH_SCAN);
// perList.add(android.Manifest.permission.BLUETOOTH_ADVERTISE);
// perList.add(android.Manifest.permission.BLUETOOTH_CONNECT);
perList.add(android.Manifest.permission.READ_EXTERNAL_STORAGE);
perList.add(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
}else {
perList.add(android.Manifest.permission.READ_EXTERNAL_STORAGE);
perList.add(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
int size = perList.size();
String [] permissions = new String[size];
for (int i = 0;i<size;i++){
permissions[i] = perList.get(i);
}
return permissions;
}
public static String [] getImagePermissionList(){
List<String> perList = new ArrayList<>();
perList.add(android.Manifest.permission.CAMERA);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
perList.add(android.Manifest.permission.READ_MEDIA_IMAGES);
perList.add(android.Manifest.permission.READ_MEDIA_VIDEO);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){ } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){
perList.add(android.Manifest.permission.BLUETOOTH_SCAN);
perList.add(android.Manifest.permission.BLUETOOTH_ADVERTISE);
perList.add(android.Manifest.permission.BLUETOOTH_CONNECT);
perList.add(android.Manifest.permission.READ_EXTERNAL_STORAGE); perList.add(android.Manifest.permission.READ_EXTERNAL_STORAGE);
perList.add(android.Manifest.permission.WRITE_EXTERNAL_STORAGE); perList.add(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
}else { }else {