鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

获取客户端触控数据

场景介绍

通过触控引擎客户端提供的API,用户可以获取到客户端产生的触控数据,并将其发送出去。

前提条件

触控引擎客户端依赖于Android的View。

开发流程

  1. 用户注册客户端触控数据发送hook函数。
  2. 触控引擎客户端继承自Android的View.OnTouchListener,需要用户调用Android View层的setOnTouchListener接口。
  3. 在调用上述接口的入参View.OnTouchListener()中的onTouch方法中调用触控引擎客户端的onTouch方法。

编码实例

具体场景

依据开发流程,通过调用触控引擎客户端API,获取View产生的触控数据,并发送到服务端。

代码样例

import android.util.Log;   
import android.view.View;   
import com.huawei.cloudgame.touch.TOUCHSENDHOOK;   
import com.huawei.cloudgame.touch.VmiTouch;   
  
public class DataPipe implements TOUCHSENDHOOK{   
    private static DataPipe instance = new DataPipe();   
  
    private DataPipe() {   
    }   
  
    public static DataPipe getInstance() {   
        return instance;   
    }   
  
    public void touchSendData(byte[] data, int length) {   
        // 发送接口的具体实现,由用户自己实现   
    }   
  
    public static void registerHookToTouch() {   
        int ret = VmiTouch.getInstance().registerTouchSendHook(DataPipe.getInstance());   
        if (ret != VmiTouch.VMI_SUCCESS) {   
            Log.e("TouchClient", "register touch send hook fail");   
        }   
    }   
}   
  
public class Test {   
    public static void main(String[] args) {   
        DataPipe.registerHookToTouch();    
        View view = getDisplayView() // 示意函数:获取客户端显示的View。   
        view.setOnTouchListener(new View.OnTouchListener() {   
            @Override   
            public boolean onTouch(View view, MotionEvent event) {   
                return VmiTouch.getInstance().onTouch(view, event);   
            }   
        });   
    }   
}