【问题标题】:neither user 10632 nor current process has android.permission.READ_PHONE_STATE error in Android 6用户 10632 和当前进程在 Android 6 中都没有 android.permission.READ_PHONE_STATE 错误
【发布时间】:2017-05-16 12:24:29
【问题描述】:
我正在 Android 6 中开发一个 Android 应用程序,我在服务中的应用程序需要获取设备 ID(getDeviceId)。我在清单文件中设置了android.permission.READ_PHONE_STATE,但在运行时出现此错误:
neither user 10632 nor current process has android.permission.READ_PHONE_STATE. java.lang.SecurityException:getDeviceId need android.permission.Read_Phone_state
我使用adb install myapk.apk 安装我的apk 文件,并且我认为所有应用程序所需的权限都是在安装时授予的。
【问题讨论】:
标签:
android
permissions
runtime-error
android-6.0-marshmallow
【解决方案1】:
您还需要在运行时请求权限。
int permissionCheck = ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.READ_PHONE_STATE);
如果app有权限,该方法返回PackageManager.PERMISSION_GRANTED,app可以继续操作。如果应用没有权限,该方法返回PERMISSION_DENIED,应用必须显式向用户请求权限。
如果你没有得到它,你应该请求它
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.READ_PHONE_STATE},
MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);