This commit is contained in:
jia 2024-12-08 01:30:46 +08:00
parent 7f655581a9
commit 1177d9fc90
5 changed files with 158 additions and 184 deletions

View File

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

View File

@ -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(){

View File

@ -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();
}
}

View File

@ -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<File>() {
@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<File>() {
@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<File> 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<File>() {
@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<File> 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<File> 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<File>() {
@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<File> 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<BaseBean<Camera>>() {
// private int result;
// @Override
// public void success(BaseBean<Camera> 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){

View File

@ -260,43 +260,6 @@ public class AppUtil {
}
public static String [] getPermissionList(){
List<String> 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<size;i++){
permissions[i] = perList.get(i);
}
return permissions;
}
public static String [] getImagePermissionList(){
List<String> perList = new ArrayList<>();
perList.add(android.Manifest.permission.CAMERA);