代码之家  ›  专栏  ›  技术社区  ›  Jaime Montoya

W/System.err:java.lang.SecurityException:getDeviceId:用户10120和当前进程都没有android.permission.READ_PHONE_状态

  •  1
  • Jaime Montoya  · 技术社区  · 6 年前

    我的Android应用程序正在引发此错误:

    D/tag: https://www.example.net/stagingarea/Toronto/products/json_confirm/7731/1/3/
    W/Adreno-EGL: <qeglDrvAPI_eglGetConfigAttrib:612>: EGL_BAD_ATTRIBUTE
    W/System.err: java.lang.SecurityException: getDeviceId: Neither user 10120 nor current process has android.permission.READ_PHONE_STATE.
    W/System.err:     at android.os.Parcel.readException(Parcel.java:2005)
    W/System.err:     at android.os.Parcel.readException(Parcel.java:1951)
    W/System.err:     at com.android.internal.telephony.ITelephony$Stub$Proxy.getDeviceId(ITelephony.java:5506)
    W/System.err:     at android.telephony.TelephonyManager.getDeviceId(TelephonyManager.java:1100)
    W/System.err:     at com.paypal.android.c.k.a(Unknown Source:97)
    W/System.err:     at com.paypal.android.c.f.B(Unknown Source:4)
    W/System.err:     at com.paypal.android.c.f.d(Unknown Source:0)
    W/System.err:     at com.paypal.android.c.f$3.run(Unknown Source:675)
    I/zygote: Do full code cache collection, code=502KB, data=399KB
    I/zygote: After code cache collection, code=496KB, data=334KB
    I/zygote: Do partial code cache collection, code=503KB, data=335KB
    I/zygote: After code cache collection, code=503KB, data=335KB
    I/zygote: Increasing code cache capacity to 2MB
    I/Choreographer: Skipped 79 frames!  The application may be doing too much work on its main thread.
    E/ViewRootImpl: sendUserActionEvent() returned.
    W/System.err: java.lang.SecurityException: getDeviceId: Neither user 10120 nor current process has android.permission.READ_PHONE_STATE.
    W/System.err:     at android.os.Parcel.readException(Parcel.java:2005)
    W/System.err:     at android.os.Parcel.readException(Parcel.java:1951)
    W/System.err:     at com.android.internal.telephony.ITelephony$Stub$Proxy.getDeviceId(ITelephony.java:5506)
    W/System.err:     at android.telephony.TelephonyManager.getDeviceId(TelephonyManager.java:1100)
    W/System.err:     at com.paypal.android.c.k.a(Unknown Source:97)
    W/System.err:     at com.paypal.android.c.f.B(Unknown Source:4)
    W/System.err:     at com.paypal.android.c.f.d(Unknown Source:0)
    W/System.err:     at com.paypal.android.c.f$3.run(Unknown Source:675)
    

    我试着用下面的代码来解决这个问题:

    int permissionCheckREAD_PHONE_STATE = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE);
            if(permissionCheckREAD_PHONE_STATE != PackageManager.PERMISSION_GRANTED){
                ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE);
            }
    

    Cannot resolve symbol 'REQUEST_READ_PHONE_STATE'
    

    我已经在用了 import android.Manifest; ,我想已经包括了 android.permission.READ_PHONE_STATE AndroidManifest.xml ,我已经包括:

    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    

    你知道我为什么要这么做吗 Cannot resolve symbol 'REQUEST_READ_PHONE_STATE' 错误?

    Error:(164, 96) error: cannot find symbol variable REQUEST_READ_PHONE_STATE
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Jaime Montoya    6 年前

    REQUEST_READ_PHONE_STATE 是我需要定义的常数。我通过定义它并添加使用该常量所需的相应代码来修复它:

    public static final int REQUEST_READ_PHONE_STATE = 8;