前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android 6.0 相关问题

Android 6.0 相关问题

作者头像
先知先觉
发布2019-01-21 11:44:21
9190
发布2019-01-21 11:44:21
举报

1.java.lang.SecurityException: getDeviceId: Neither user 10063 nor current process has android.permission.READ_PHONE_STATE

代码语言:javascript
复制
java.lang.SecurityException: getDeviceId: Neither user 10063 nor current process has android.permission.READ_PHONE_STATE
at android.os.Parcel.readException(Parcel.java:1599)                                                                            at android.os.Parcel.readException(Parcel.java:1552)                                                                            at com.android.internal.telephony.ITelephony$Stub$Proxy.getDeviceId(ITelephony.java:4175                                                                             at android.telephony.TelephonyManager.getDeviceId(TelephonyManager.java:706                                                                             at com.alibaba.idst.nls.internal.common.DeviceId.getIMEI(DeviceId.java:105)                                                                           at com.alibaba.idst.nls.internal.common.DeviceId.generateDeviceId(DeviceId.java:56)                                                                             at com.alibaba.idst.nls.internal.common.DeviceId.getDeviceIdFromSettings(DeviceId.java:43)                                                                             at com.alibaba.idst.nls.internal.common.DeviceId.getDeviceId(DeviceId.java:34)                                                                             at com.alibaba.idst.nls.internal.ServiceStatusChecker$1.run(ServiceStatusChecker.java:65)

原因

你在安卓6.0设备上跑了这个程序,并且编译版本大于23,而且这个原因是在6.0中没有给加上动态权限请求,你的应用在安装到手机的时候将不会获取任何权限!!!可以去查看应用的应用信息,其中的 Permissions 权限列表中所有的权限组都是关闭状态。

解决方案

1.可以将app/build.gradle中的 targetSdkVersion和compileSdkVersion设置为22或以下版本 2.添加动态权限:

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity implements ActivityCompat.OnRequestPermissionsResultCallback {}
代码语言:javascript
复制
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

         requestReadPhonePermission();
    }
代码语言:javascript
复制
private void requestReadPhonePermission() {
        if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) {
        //在这里面处理需要权限的代码
        } else {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, REQUEST_READ_PHONE_STATE);
        }
    }

权限的结果处理

代码语言:javascript
复制
@Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode) {
            case REQUEST_READ_PHONE_STATE:
                if ((grantResults.length > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
                    //TODO
                }
                break;

            default:
                break;
        }
    }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年11月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.java.lang.SecurityException: getDeviceId: Neither user 10063 nor current process has android.permission.READ_PHONE_STATE
    • 原因
      • 解决方案
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档