### **屏幕共享**
**模块简述**
(1)AnyChat Android端屏幕共享功能最低适配Android 5.0设备,通过接口控制开启和关闭,以实现屏幕共享功能。
(2)由于屏幕共享属于系统级,因此在开启了屏幕共享后,按home键界面切换到后台和重新回到前台界面时,最好在Activity对应生命周期方法(onStop()内关闭处理、onRestart()内重新打开)内做好关闭屏幕共享流和重新打开屏幕共享流的处理,否则可能会将本应用界面之外的画面共享出去,从而引发安全问题;
屏幕共享的操作必须在房间内进行,用户打开本地屏幕共享流后,房间内其他用户只需获取该用户的屏幕共享流即可查看该用户的屏幕信息。
屏幕共享模块包括:开启屏幕共享,开启屏幕共享权限回调处理,关闭屏幕共享 。
注意 :屏幕共享功能要求最低为Android 5.0设备,且集成开发时要集成AnyChat V7.2及以上版本。
**屏幕共享流程**
开启屏幕共享 -->开启屏幕共享权限回调处理 -->关闭屏幕共享
### **开启屏幕共享**
void openScreenShare(String json, Activity activity)
#### 接口说明:
开启屏幕共享
#### 接口参数简介:
| 名称 | 类型 | 说明 | 是否必须 |
| --- | --- | --- | --- |
| json| String| 自定义流号设置(json字符串形式 ,为空时默认1号流开启屏幕共享); 流号的取值范围1-7; 示例:{"streamIndex":1} | 是 |
| activity| Activity | Activity | 是 |
**注意:自定义屏幕共享流号设置时,流号的取值范围1-7;**
### **开启屏幕共享权限回调**
boolean onRequestResult(int requestCode, int resultCode, Intent data)
#### 接口说明:
开启屏幕共享权限回调
(1)Android 5.0及以上设备截屏需要用户授权,所以需要重写Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法,以处理用户手动授权返回的结果;
(2)在重写的Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法中调用onRequestResult(requestCode, resultCode, data)方法处理用户授权结果回调并返回结果给sdk。
#### 接口参数简介:
| 名称 | 类型 | 说明 | 是否必须 |
| --- | --- | --- | --- |
| requestCode| int| 请求码,有多个activity返回结果时,能判断是哪一个activity返回| 是 |
| resultCode|int | 返回码,通过该参数判断子activity返回的状态| 是 |
| data|Intent | Intent | 是 |
### **关闭屏幕共享**
void closeScreenShare(Activity activity)
#### 接口说明:
关闭屏幕共享
#### 接口参数简介:
| 名称 | 类型 | 说明 | 是否必须 |
| --- | --- | --- | --- |
| activity| Activity | Activity | 是 |
示例代码
1.开启屏幕共享
AnyChatSDK.getInstance().openScreenShare("",activity);
2.开启屏幕共享权限回调
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (AnyChatSDK.getInstance()!= null) {
//请求屏幕共享截屏权限sdk回调处理
boolean isScreenShareOpen =
AnyChatSDK.getInstance().onRequestResult(requestCode, resultCode, data);
}
}
3.关闭屏幕共享
AnyChatSDK.getInstance().closeScreenShare(activity);