同样的代码在8.0以下手机上运行无误,但是8.1以及9.0的用户反馈启动白屏。这就奇怪了,我首先断点调试没有发现问题,最后多打了几个断点发现在获取设备信息时抛异常了,断点卡在下面两行。
String device_type = android.os.Build.MODEL; // 手机型号
String release = android.os.Build.VERSION.RELEASE; // android系统版本号
首先,我查询6.0以上危险权限组中有READ_PHONE_STATE,确实出问题的代码中我没有动态授权,但是奇怪的是
CALL_PHONE是我动态给过的,显然并不是给一个就把整组权限都拿到了。
添加了READ_PHONE_STATE之后,经测试无误了。最终代码如下:
(1)实现接口 implements OnRequestPermissionsResultCallback
(2)授权
private void checkPermissioin(){
int checkStorage = ContextCompat.checkSelfPermission(LoginActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
int checkCallPhone