diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/H5Activity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/H5Activity.java index 44bd645..709f84e 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/H5Activity.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/H5Activity.java @@ -232,6 +232,10 @@ public class H5Activity extends AppCompatActivity { } else { String url = intent.getStringExtra("url"); + if (TextUtils.isEmpty(url)) { + ActivityUtils.finishToActivity(MainActivity.class, false); + return; + } viewFile = intent.getBooleanExtra("view_file", false); if (url.startsWith("alipay")) { try { diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/report/JTTProcess.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/report/JTTProcess.java index e8f20ff..00f897a 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/report/JTTProcess.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/report/JTTProcess.java @@ -119,6 +119,9 @@ public class JTTProcess { //参数 ShippingNoteInfo 和 start 接口中的参数 ShippingNoteInfo 相 //同,这里 shippingNoteInfo 信息只需传入运单号和分单号即可 public static void send(Context con,StartOrderBean sob,String remark){ + if (sob.getData()==null){ + return; + } ShippingNoteInfo[] snis=new ShippingNoteInfo[1]; ShippingNoteInfo sni=new ShippingNoteInfo(); sni.setShippingNoteNumber(sob.getData().getShippingNoteNumber()); diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/utils/PermissionUtils.java b/mylibrary/src/main/java/com/dahe/mylibrary/utils/PermissionUtils.java new file mode 100644 index 0000000..68eb34a --- /dev/null +++ b/mylibrary/src/main/java/com/dahe/mylibrary/utils/PermissionUtils.java @@ -0,0 +1,112 @@ +package com.dahe.mylibrary.utils; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.os.Build; +import android.provider.Settings; + +/** + * @ClassName PermissionUtils + * @Author john + * @Date 2024/12/19 14:59 + * @Description TODO + */ +public class PermissionUtils { + + // 私有静态实例,防止被外部实例化 + private static PermissionUtils instance; + + // 私有构造方法,防止通过 new 关键字创建实例 + private PermissionUtils() { + } + + // 获取单例实例 + public static PermissionUtils getInstance() { + if (instance == null) { + synchronized (PermissionUtils.class) { + if (instance == null) { + instance = new PermissionUtils(); + } + } + } + return instance; + } + + /** + * 根据不同手机机型跳转到权限设置页面 + * + * @param context 上下文 + */ + public void goToAppPermissionSettings(Context context) { + Intent intent = new Intent(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (Build.FINGERPRINT.startsWith("Huawei") || Build.BRAND.startsWith("Huawei")) { + // 华为手机 + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + Uri uri = Uri.fromParts("package", context.getPackageName(), null); + intent.setData(uri); + } else if (Build.FINGERPRINT.startsWith("Xiaomi") || Build.BRAND.startsWith("Xiaomi")) { + // 小米手机 + intent.setAction(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION); + Uri uri = Uri.parse("package:" + context.getPackageName()); + intent.setData(uri); + } else if (Build.BRAND.equals("Meizu")) { + // 魅族手机 + intent.setAction("com.meizu.safe.security.SHOW_APPSEC"); + intent.addCategory(Intent.CATEGORY_DEFAULT); + intent.putExtra("packageName", context.getPackageName()); + } else if (Build.FINGERPRINT.startsWith("OPPO") || Build.BRAND.startsWith("OPPO")) { + // OPPO手机 + try { + String pkgName = context.getPackageName(); + String className = "com.coloros.safecenter.permission.PermissionManagerActivity"; + intent.setClassName("com.coloros.safecenter", className); + intent.putExtra("packageName", pkgName); + intent.putExtra("appName", context.getResources().getString(context.getApplicationInfo().labelRes)); + intent.putExtra("opType", "4"); // 4 表示权限管理页面 + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + } catch (Exception e) { + // 如果找不到OPPO的特定页面,则使用通用页面 + intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + Uri uri = Uri.fromParts("package", context.getPackageName(), null); + intent.setData(uri); + } + } else if (Build.FINGERPRINT.startsWith("vivo") || Build.BRAND.startsWith("vivo")) { + // vivo手机 + intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + Uri uri = Uri.fromParts("package", context.getPackageName(), null); + intent.setData(uri); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName()); + } else if (Build.BRAND.equals("samsung")) { + // 三星手机 + try { + String pkgName = context.getPackageName(); + Intent intent2 = new Intent("android.settings.APPLICATION_DETAILS_SETTINGS"); + intent2.addCategory(Intent.CATEGORY_DEFAULT); + intent2.setData(Uri.parse("package:" + pkgName)); + intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent2.putExtra("com.android.providers.media.EXTRA_APP_PACKAGE", pkgName); + context.startActivity(intent2); + return; // 使用三星特定的页面,不需要继续执行通用代码 + } catch (Exception e) { + // 如果三星特定页面失败,则使用通用页面 + } + } else { + // 其他手机使用通用页面 + intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + Uri uri = Uri.fromParts("package", context.getPackageName(), null); + intent.setData(uri); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName()); + } + } else { + // 低于Android 6.0(M)的版本,使用通用页面 + intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + Uri uri = Uri.fromParts("package", context.getPackageName(), null); + intent.setData(uri); + } + context.startActivity(intent); + } +} \ No newline at end of file