今天集成广点通开屏广告的时候返回广告的时候总回报一个未知错误,详情码605, 各种找方法找了很久,只是知道是权限的问题就是不知道出在哪里,突然间有一个想法是不是RxPermissions的问题结果把 RxPermissions去了就好了。
替代RxPermissions的方法就是判断SDK是否大于23 也就是6.0意思如果是就加上 然后就解决了,记一下防止自己再犯错误,同时也给大家提供一个解决方案
if (Build.VERSION.SDK_INT >= 23) { checkAndRequestPermission(); } else { // 如果是Android6.0以下的机器,默认在安装时获得了所有权限,可以直接调用SDK }
@TargetApi(Build.VERSION_CODES.M) private void checkAndRequestPermission() { List<String> lackedPermission = new ArrayList<String>(); if (!(checkSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED)) { lackedPermission.add(Manifest.permission.READ_PHONE_STATE); } if (!(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)) { lackedPermission.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); } if (!(checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED)) { lackedPermission.add(Manifest.permission.ACCESS_FINE_LOCATION); } // 权限都已经有了,那么直接调用SDK if (lackedPermission.size() == 0) { fetchSplashAD(this, splash_container, skip_view, "1108172995", splash, this, 0); } else { // 请求所缺少的权限,在onRequestPermissionsResult中再看是否获得权限,如果获得权限就可以调用SDK,否则不要调用SDK。 String[] requestPermissions = new String[lackedPermission.size()]; lackedPermission.toArray(requestPermissions); requestPermissions(requestPermissions, 1024); } }