注册

最新demo提高targetSdkVersion到23后,报安全异常

was not granted  either of these permissions: android.permission.CHANGE_NETWORK_STATE, android.permission.WRITE_SETTINGS.
已邀请:
找到问题所在了,在Application中初始化 EMClient.getInstance().conferenceManager().addConferenceListener(new EMConferenceListener() ,会涉及到这个两个权限,这两个权限在6.0系统上存在BUG ,在7.0系统官方已经修复。(请查看:https://www.jianshu.com/p/bab716584316​)
解决办法是:在6.0系统上需要手动开启设置,而7.0上不需要开启设置。
6.0系统开启设置代码:
private static final int REQUEST_CODE_WRITE_SETTINGS = 2; private void requestWriteSettings() { Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS); intent.setData(Uri.parse("package:" + getPackageName())); startActivityForResult(intent, REQUEST_CODE_WRITE_SETTINGS ); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE_WRITE_SETTINGS) { if (Settings.System.canWrite(this)) { //EMClient.getInstance().conferenceManager().addConferenceListener(new EMConferenceListener() } } }
 

要回复问题请先登录注册