From 1177d9fc90d63dc6537f318c14d8a61c58c62427 Mon Sep 17 00:00:00 2001 From: jia Date: Sun, 8 Dec 2024 01:30:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- .../com/ifish/activity/LoadingActivity.java | 21 +- .../java/com/ifish/activity/MineActivity.java | 24 +- .../com/ifish/fragment/DeviceFragment.java | 258 +++++++++--------- .../main/java/com/ifish/utils/AppUtil.java | 37 --- 5 files changed, 158 insertions(+), 184 deletions(-) diff --git a/gradle.properties b/gradle.properties index 43ea30136..e36eb644e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,5 +26,5 @@ android.enableJetifier=true android.useAndroidX=true android.useDeprecatedNdk=true -versionCode=58 +versionCode=40 versionName=4.11.17.3 \ No newline at end of file diff --git a/iFish7/src/main/java/com/ifish/activity/LoadingActivity.java b/iFish7/src/main/java/com/ifish/activity/LoadingActivity.java index 4005c4a99..40f4c64a1 100644 --- a/iFish7/src/main/java/com/ifish/activity/LoadingActivity.java +++ b/iFish7/src/main/java/com/ifish/activity/LoadingActivity.java @@ -138,16 +138,17 @@ public class LoadingActivity extends BaseActivityNotAnim { if (savedInstanceState != null) { setIntent(new Intent()); // 从堆栈恢复,不再重复解析之前的intent } - permission = AppUtil.getPermissionList(); - permissionHelper = new PermissionHelper(LoadingActivity.this, permission, 250); - - Boolean showPrivacy = SPUtil.getInstance(getApplicationContext()).getBoolean(firstShowPrivacy, false); - Boolean aBoolean = ConfigUtil.getInstance(getApplicationContext()).getBoolean(LoginSPKey.IS_FirstOpen, false); - if(!aBoolean && !showPrivacy){ - startPrivacyTextDialog(); - }else{ - getPermission(); - } +// permission = AppUtil.getPermissionList(); +// permissionHelper = new PermissionHelper(LoadingActivity.this, permission, 250); +// +// Boolean showPrivacy = SPUtil.getInstance(getApplicationContext()).getBoolean(firstShowPrivacy, false); +// Boolean aBoolean = ConfigUtil.getInstance(getApplicationContext()).getBoolean(LoginSPKey.IS_FirstOpen, false); +// if(!aBoolean && !showPrivacy){ +// startPrivacyTextDialog(); +// }else{ +// getPermission(); +// } + initapp(); } private void analysisBaseUrlError(){ diff --git a/iFish7/src/main/java/com/ifish/activity/MineActivity.java b/iFish7/src/main/java/com/ifish/activity/MineActivity.java index 8b2fba5a7..d71aacafa 100644 --- a/iFish7/src/main/java/com/ifish/activity/MineActivity.java +++ b/iFish7/src/main/java/com/ifish/activity/MineActivity.java @@ -291,10 +291,11 @@ public class MineActivity extends BaseActivity { private void changeHead() { if (!permissionHelper.checkSelfPermission(permission)) { - getPermission(); - return; + showPermissionHint(); + } else { + gallery(); } - gallery(); + // final Dialog dialogHead = new Dialog(MineActivity.this, R.style.HOLOMyDialogs); // dialogHead.show(); // Window window = dialogHead.getWindow(); @@ -774,7 +775,7 @@ public class MineActivity extends BaseActivity { dialog.setCancelable(false); dialog.setTitle("温馨提示"); // dialog.setMessage("请到应用管理-爱鱼奇-应用权限页面开启权限后重新打开app"); - dialog.setMessage("请到应用信息页面-权限管理-打开存储和相机权限"); + dialog.setMessage("请到应用信息页面-权限管理-打开图片和相机权限"); dialog.setPositiveButton("去开启", (dialog1, which) -> { AppUtil.toAuthority(MineActivity.this); }); @@ -791,4 +792,19 @@ public class MineActivity extends BaseActivity { permissionHelper.onRequestPermissionsResult(requestCode, permissions, grantResults); } } + + private void showPermissionHint(){ + AlertDialog.Builder dialog = new AlertDialog.Builder(this, AlertDialog.THEME_HOLO_LIGHT); + dialog.setCancelable(false); + dialog.setTitle("提示"); + dialog.setMessage("设置头像,需要申请相机和相册权限,是否允许申请?"); + dialog.setNegativeButton("拒绝", (arg0, arg1) -> { + arg0.dismiss(); + + }); + dialog.setPositiveButton("允许", (dialog1, which) -> { + getPermission(); + }); + dialog.show(); + } } diff --git a/iFish7/src/main/java/com/ifish/fragment/DeviceFragment.java b/iFish7/src/main/java/com/ifish/fragment/DeviceFragment.java index 81e61a088..a5a06de69 100644 --- a/iFish7/src/main/java/com/ifish/fragment/DeviceFragment.java +++ b/iFish7/src/main/java/com/ifish/fragment/DeviceFragment.java @@ -272,11 +272,8 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi AlertDialog.Builder dialog = new AlertDialog.Builder(getContext()); dialog.setCancelable(false); dialog.setTitle("温馨提示"); -// dialog.setMessage("请到应用管理-爱鱼奇-应用权限页面开启权限后重新打开app"); dialog.setMessage("请到应用信息页面-权限管理-打开位置权限,不然是发现不了附近的wifi的,将无法进行配网连接您的智能设备"); dialog.setPositiveButton("去开启", (dialog1, which) -> { -// Intent mItent = new Intent(Settings.ACTION_SETTINGS); -// startActivity(mItent); AppUtil.toAuthority(requireActivity()); }); dialog.setNegativeButton("取消", (dialog12, which) -> { @@ -687,118 +684,118 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi intent.setData(Uri.parse(String.format("package:%s", getActivity().getApplicationContext().getPackageName()))); startActivityForResult(intent, 301); } else { - ActivityCompat.requestPermissions(getActivity(), new String[]{WRITE_EXTERNAL_STORAGE}, 302); + ActivityCompat.requestPermissions(getActivity(), new String[]{WRITE_EXTERNAL_STORAGE}, 301); } - } - - apkDownloadDialog = new Dialog(getActivity(), R.style.DefautDialogs); - apkDownloadDialog.setCancelable(false); - apkDownloadDialog.show(); - Window window = apkDownloadDialog.getWindow(); - window.setContentView(R.layout.dialog_downloadapk); - final TextView tv_title = (TextView) window.findViewById(R.id.tv_title); - final TextView tv_current = (TextView) window.findViewById(R.id.tv_current); - final ProgressBar progess_bar = (ProgressBar) window.findViewById(R.id.progess_bar); - final Button bt_redownload = (Button) window.findViewById(R.id.bt_redownload); - final String downloaded = "maybe the file has downloaded completely";//如果文件已经下载好 就会抛出此异常 可以判断此异常直接打开文件 - /** - * 下载apk - */ - L.i("====================appAddress=" + appAddress + "+path=" + apkPath); - http.download(appAddress, apkPath, false, false, new RequestCallBack() { - @Override - public void onStart() { - super.onStart(); - tv_title.setText("开始下载..."); - tv_current.setText("0%"); - bt_redownload.setVisibility(View.GONE);//开始下载时 把重新下载按钮隐藏 - progess_bar.setProgress(0);//进度条初始 - } - - @Override - public void onLoading(long total, long current, boolean isUploading) { - super.onLoading(total, current, isUploading); - progess_bar.setProgress((int) ((double) current / (double) total * 100)); - double currentA = (double) (current) / (1024 * 1024);//byte转MB除以1024*1024 - double totaldB = (double) total / (1024 * 1024); - String formatA = String.format("%.2f", currentA);//只保留2位小数 - String formatB = String.format("%.2f", totaldB); - tv_title.setText("下载中 " + formatA + "MB/" + formatB + "MB"); - tv_current.setText((int) (current * 100 / total) + "%"); - } - - @Override - public void onFailure(HttpException arg0, String msg) { - L.i(msg); - if (downloaded.equals(msg)) {//已经存在要下载的文件 会抛出此异常 可以直接安装 - progess_bar.setProgress(100);//进度条填满 - tv_title.setText("安装包已存在"); - apkFile = new File(apkPath); - installApk(); - } else { - ToastUtil.show(getActivity(), Text.ERROR); - bt_redownload.setVisibility(View.VISIBLE); //网络错误下载失败时 把重新下载按钮显示 + }else { + apkDownloadDialog = new Dialog(getActivity(), R.style.DefautDialogs); + apkDownloadDialog.setCancelable(false); + apkDownloadDialog.show(); + Window window = apkDownloadDialog.getWindow(); + window.setContentView(R.layout.dialog_downloadapk); + final TextView tv_title = (TextView) window.findViewById(R.id.tv_title); + final TextView tv_current = (TextView) window.findViewById(R.id.tv_current); + final ProgressBar progess_bar = (ProgressBar) window.findViewById(R.id.progess_bar); + final Button bt_redownload = (Button) window.findViewById(R.id.bt_redownload); + final String downloaded = "maybe the file has downloaded completely";//如果文件已经下载好 就会抛出此异常 可以判断此异常直接打开文件 + /** + * 下载apk + */ + L.i("====================appAddress=" + appAddress + "+path=" + apkPath); + http.download(appAddress, apkPath, false, false, new RequestCallBack() { + @Override + public void onStart() { + super.onStart(); + tv_title.setText("开始下载..."); + tv_current.setText("0%"); + bt_redownload.setVisibility(View.GONE);//开始下载时 把重新下载按钮隐藏 + progess_bar.setProgress(0);//进度条初始 } - } - @Override - public void onSuccess(ResponseInfo arg0) { - bt_redownload.setVisibility(View.GONE);//下载成功 把重新下载按钮隐藏 并跳转安装apk - tv_title.setText("安装包下载成功"); - apkFile = arg0.result; - installApk(); - } - }); - bt_redownload.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - delApk();//删除apk - bt_redownload.setVisibility(View.GONE);//开始下载时 把重新下载按钮隐藏 - http.download(appAddress, apkPath, false, false, new RequestCallBack() { - @Override - public void onStart() { - super.onStart(); - tv_title.setText("开始下载..."); - tv_current.setText("0%"); - bt_redownload.setVisibility(View.GONE);//开始下载时 把重新下载按钮隐藏 - progess_bar.setProgress(0);//进度条初始 - } + @Override + public void onLoading(long total, long current, boolean isUploading) { + super.onLoading(total, current, isUploading); + progess_bar.setProgress((int) ((double) current / (double) total * 100)); + double currentA = (double) (current) / (1024 * 1024);//byte转MB除以1024*1024 + double totaldB = (double) total / (1024 * 1024); + String formatA = String.format("%.2f", currentA);//只保留2位小数 + String formatB = String.format("%.2f", totaldB); + tv_title.setText("下载中 " + formatA + "MB/" + formatB + "MB"); + tv_current.setText((int) (current * 100 / total) + "%"); + } - @Override - public void onLoading(long total, long current, boolean isUploading) { - super.onLoading(total, current, isUploading); - progess_bar.setProgress((int) ((double) current / (double) total * 100)); - double currentA = (double) (current) / (1024 * 1024);//byte转MB除以1024*1024 - double totaldB = (double) total / (1024 * 1024); - String formatA = String.format("%.2f", currentA);//只保留2位小数 - String formatB = String.format("%.2f", totaldB); - tv_title.setText("下载中 " + formatA + "MB/" + formatB + "MB"); - tv_current.setText((int) (current * 100 / total) + "%"); - } - - @Override - public void onFailure(HttpException arg0, String msg) { - if (downloaded.equals(msg)) {//已经存在要下载的文件 会抛出此异常 可以直接安装 - progess_bar.setProgress(100);//进度条填满 - tv_title.setText("安装包已存在"); - apkFile = new File(apkPath); - installApk(); - } else { - ToastUtil.show(getActivity(), Text.ERROR); - bt_redownload.setVisibility(View.VISIBLE); //网络错误下载失败时 把重新下载按钮显示 - } - } - - @Override - public void onSuccess(ResponseInfo arg0) { - bt_redownload.setVisibility(View.GONE);//下载成功 把重新下载按钮隐藏 并跳转安装apk - tv_title.setText("安装包下载成功"); - apkFile = arg0.result; + @Override + public void onFailure(HttpException arg0, String msg) { + L.i(msg); + if (downloaded.equals(msg)) {//已经存在要下载的文件 会抛出此异常 可以直接安装 + progess_bar.setProgress(100);//进度条填满 + tv_title.setText("安装包已存在"); + apkFile = new File(apkPath); installApk(); + } else { + ToastUtil.show(getActivity(), Text.ERROR); + bt_redownload.setVisibility(View.VISIBLE); //网络错误下载失败时 把重新下载按钮显示 } - }); - } - }); + } + + @Override + public void onSuccess(ResponseInfo arg0) { + bt_redownload.setVisibility(View.GONE);//下载成功 把重新下载按钮隐藏 并跳转安装apk + tv_title.setText("安装包下载成功"); + apkFile = arg0.result; + installApk(); + } + }); + bt_redownload.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + delApk();//删除apk + bt_redownload.setVisibility(View.GONE);//开始下载时 把重新下载按钮隐藏 + http.download(appAddress, apkPath, false, false, new RequestCallBack() { + @Override + public void onStart() { + super.onStart(); + tv_title.setText("开始下载..."); + tv_current.setText("0%"); + bt_redownload.setVisibility(View.GONE);//开始下载时 把重新下载按钮隐藏 + progess_bar.setProgress(0);//进度条初始 + } + + @Override + public void onLoading(long total, long current, boolean isUploading) { + super.onLoading(total, current, isUploading); + progess_bar.setProgress((int) ((double) current / (double) total * 100)); + double currentA = (double) (current) / (1024 * 1024);//byte转MB除以1024*1024 + double totaldB = (double) total / (1024 * 1024); + String formatA = String.format("%.2f", currentA);//只保留2位小数 + String formatB = String.format("%.2f", totaldB); + tv_title.setText("下载中 " + formatA + "MB/" + formatB + "MB"); + tv_current.setText((int) (current * 100 / total) + "%"); + } + + @Override + public void onFailure(HttpException arg0, String msg) { + if (downloaded.equals(msg)) {//已经存在要下载的文件 会抛出此异常 可以直接安装 + progess_bar.setProgress(100);//进度条填满 + tv_title.setText("安装包已存在"); + apkFile = new File(apkPath); + installApk(); + } else { + ToastUtil.show(getActivity(), Text.ERROR); + bt_redownload.setVisibility(View.VISIBLE); //网络错误下载失败时 把重新下载按钮显示 + } + } + + @Override + public void onSuccess(ResponseInfo arg0) { + bt_redownload.setVisibility(View.GONE);//下载成功 把重新下载按钮隐藏 并跳转安装apk + tv_title.setText("安装包下载成功"); + apkFile = arg0.result; + installApk(); + } + }); + } + }); + } } /** @@ -1543,31 +1540,14 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi // EventBean eventBean = new EventBean(EventBean.BLUETOOTH_STOP_SCAN); // EventBus.getDefault().post(eventBean); + if (!permissionHelper.checkSelfPermission(permission)) { - getPermission(); - return; + showPermissionHint(); + }else { + intent.setClass(getActivity(), BindTwoDeviceActivity.class); + startActivity(intent); + AnimationUtil.startAnimation(getActivity()); } - intent.setClass(getActivity(), BindTwoDeviceActivity.class); - startActivity(intent); - AnimationUtil.startAnimation(getActivity()); -// hm.shareCameraByQrCode(new HttpListener>() { -// private int result; -// @Override -// public void success(BaseBean baseBean) { -// result = baseBean.result; -//// dataDevice = baseBean.data; -// } -// -// @Override -// public void finish() { -// -// } -// -// @Override -// public void error(Exception e, String msg) { -// -// } -// }, Commons.USER.getUserId(), "19125526"); break; case R.id.tv_explain: //我的设备---查看说明书 /*intent.setClass(getActivity(), WebViewActivity.class); @@ -1951,6 +1931,20 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi // } // } + private void showPermissionHint(){ + AlertDialog.Builder dialog = new AlertDialog.Builder(requireContext(), AlertDialog.THEME_HOLO_LIGHT); + dialog.setCancelable(false); + dialog.setTitle("提示"); + dialog.setMessage("添加设备,需要获取位置信息,才能获取附近wifi信息,进行配网连接您的设备,是否允许申请?"); + dialog.setNegativeButton("拒绝", (arg0, arg1) -> { + arg0.dismiss(); + + }); + dialog.setPositiveButton("允许", (dialog1, which) -> { + getPermission(); + }); + dialog.show(); + } public void showDevice(){ // 检测页面 if (!isShowIng){ diff --git a/iFish7/src/main/java/com/ifish/utils/AppUtil.java b/iFish7/src/main/java/com/ifish/utils/AppUtil.java index 9188c671f..89e2178f7 100644 --- a/iFish7/src/main/java/com/ifish/utils/AppUtil.java +++ b/iFish7/src/main/java/com/ifish/utils/AppUtil.java @@ -260,43 +260,6 @@ public class AppUtil { } - public static String [] getPermissionList(){ - List perList = new ArrayList<>(); - perList.add(android.Manifest.permission.CAMERA); - perList.add(android.Manifest.permission.ACCESS_FINE_LOCATION); -// perList.add(android.Manifest.permission.READ_PHONE_STATE); - // jiablue -// perList.add(android.Manifest.permission.BLUETOOTH); -// 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) { - perList.add(android.Manifest.permission.READ_MEDIA_IMAGES); - perList.add(android.Manifest.permission.READ_MEDIA_VIDEO); - // jiablue -// perList.add(android.Manifest.permission.BLUETOOTH_SCAN); -// 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 perList = new ArrayList<>(); perList.add(android.Manifest.permission.CAMERA);