1

我正在使用com.huawei.hms:scan:1.3.2.300

设备:荣耀50,Magic UI 4.2,安卓11。

以下是崩溃日志:</p>

java.lang.SecurityException:getNetworkTypeForSubscriber 5 在 android.os.Parcel.createExceptionOrNull(Parcel.java:2384) 6 在 android.os.Parcel.createException(Parcel.java:2368) 7 在 android.os.Parcel.readException(Parcel .java:2351) 8 在 android.os.Parcel.readException(Parcel.java:2293) 9 在 com.android.internal.telephony.ITelephony$Stub$Proxy.getNetworkTypeForSubscriber(ITelephony.java:8795) 10 在 android.telephony .TelephonyManager.getNetworkType(TelephonyManager.java:3102) 11 在 android.telephony.TelephonyManager.getNetworkType(TelephonyManager.java:3064) 12 在 com.huawei.hms.mlkit.common.ha.db(HianalyticsLogUtils.java:68) 13 com.huawei.hms.mlkit.common.ha.HianalyticsLogProvider.logEnd(HianalyticsLogProvider.java:6315) 14 com.huawei.hms.ml.camera.g$aa(HiAnalyticsThread.java:109) 15 com.huawei .hms.ml.camera.g$a。handleMessage(HiAnalyticsThread.java:78) 16 在 android.os.Handler.dispatchMessage(Handler.java:109) 17 在 android.os.Looper.loop(Looper.java:228) 18 在 com.huawei.hms.ml。 camera.g.run(HiAnalyticsThread.java:51)

请帮忙。

4

1 回答 1

2

在此处输入图像描述

如果SDK版本晚于或等于Android R,则需要在代码中动态申请READ_PHONE_STATE权限。请检查并重试。

权限代码如下:

    @Override
    protected void onStart() {
        super.onStart();

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {

            int res = checkSelfPermission(android.Manifest.permission.READ_PHONE_STATE);
            if (res != PackageManager.PERMISSION_GRANTED) {
                requestPermissions(new String[]{android.Manifest.permission.READ_PHONE_STATE}, 123);
            }

        }
    }

    private final static int REQUEST_CODE_ASK_PERMISSIONS = 1003;

    @Override
    public void onRequestPermissionsResult(int requestCode,
                                           @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode) {
            case REQUEST_CODE_ASK_PERMISSIONS:
                if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
                    Toast.makeText(getApplicationContext(), "READ_PHONE_STATE Denied", Toast.LENGTH_SHORT)
                            .show();
                } else {
                }
                stepAfterSplash();

                break;
            default:
                super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }

于 2021-11-25T06:39:18.487 回答