m0_64998486 2023-01-10 10:25 采纳率: 0%
浏览 86
已结题

Android Process.getInputStream()获取数据时怎么会有延迟?

我在Android中执行shell getevent在发现获取数据时有延迟哪位伙伴知道怎么解决吗?
这里是执行代码

          try {
            Process process = Runtime.getRuntime().exec("su \n");
            dataOutputStream = new DataOutputStream(process.getOutputStream());
            dataOutputStream.writeBytes("getevent -l /dev/input/event3 \n");
            dataOutputStream.flush();
            dataOutputStream.close();
            dataOutputStream = null;
            inputStream = process.getInputStream();
            int c;
            StringBuilder stringBuilder = new StringBuilder();
            String line;
            while ((c = inputStream.read()) != -1) {
                stringBuilder.append((char)c);
                if ('\n' == c) {
                    line = stringBuilder.toString();
                    stringBuilder.setLength(0);
                    Log.i(MainActivity.LOG_TAG, String.format("输出:%s", line));
                }
            }
            process.waitFor();
            Log.i(MainActivity.LOG_TAG, "监听触点结束");
        } catch (Exception e) {
            e.printStackTrace();
        }

这是单击模拟器后的执行结果:

img

上图是点击模拟器后控制台的执行情况,可以看到Logcat没有输出但是terminal是有输出的。

  • 写回答

4条回答 默认 最新

  • ShowMeAI 2023-01-10 11:06
    关注

    在Android中使用getevent执行shell脚本时,如果发现获取数据有延迟,可能是因为缓存问题导致的。

    有几种方法可以尝试解决这个问题:

    • 使用-t选项,这会在每个事件之间添加时间戳,从而使输出更加精确。
    • 使用-c选项,这会清除缓存,从而使输出更加精确。
    • 尝试使用其他工具,比如input命令或者adb shell dumpsys input命令,来替代getevent。

    你可以使用以下命令来获取输入事件信息:

    adb shell dumpsys input
    

    或者使用以下命令来获取输入设备信息:

    adb shell dumpsys input | grep "Input Devices:"
    
    评论

报告相同问题?

问题事件

  • 系统已结题 1月22日
  • 修改了问题 1月14日
  • 修改了问题 1月14日
  • 赞助了问题酬金15元 1月14日
  • 展开全部

悬赏问题

  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆