Невозможно изменить размер массива изображений, хотя он имеет правильный размер

Привет, я использую этот метод, потому что Appium не одобрял их переключатель для Wi-Fi, и я создал свое собственное переопределение через консоль с помощью команд из adb. Он работает для меня, поэтому попробуйте использовать

public synchronized boolean wifiSetup(String udid, boolean flg) {
    synchronized (this) {
        String flgEnabled = (flg) ? "enable" : "disable";


        List<String> output = Console.runProcess(false, "adb -s " + udid + " shell am broadcast -a io.appium.settings.wifi --es setstatus " + flgEnabled);
        for (String line : output) {
            System.err.println(line);
            if (line.equalsIgnoreCase("Broadcast completed: result=-1"))
                return true;
        }
        return false;
    }

}

для отключения:

wifiSetup("xxxUDIDfromAndroid", false); 

использование для включения:

wifiSetup("xxxUDIDfromAndroid", true); 

И вот часть для вызова консоли:

public class Console {
    private static final String[] WIN_RUNTIME = { "cmd.exe", "/C" };
    private static final String[] OS_LINUX_RUNTIME = { "/bin/bash", "-l", "-c" };

    private Console() {

    }

    private static <T> T[] concat(T[] first, T[] second) {
        T[] result = Arrays.copyOf(first, first.length + second.length);
        System.arraycopy(second, 0, result, first.length, second.length);
        return result;
    }

    @SuppressWarnings({ "hiding"})
    private static <String> String[] concatStr(String[] first, String[] second) {
        String[] result = Arrays.copyOf(first, first.length + second.length);
        System.arraycopy(second, 0, result, first.length, second.length);
        return result;
    }



    public static List<String> runProcess(boolean isWin, String... command) {           
        String[] allCommand = null;
        try {
            if (isWin) {
                allCommand = concat(WIN_RUNTIME, command);
            } else {
                allCommand = concat(OS_LINUX_RUNTIME, command);
            }
            ProcessBuilder pb = new ProcessBuilder(allCommand);
            pb.redirectErrorStream(true);
            Process p = pb.start();
            p.waitFor();
            BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String _temp = null;
            List<String> line = new ArrayList<String>();
            while ((_temp = in.readLine()) != null) {
//              system.out.println("temp line: " + _temp);
                line.add(_temp);
            }
//          system.out.println("result after command: " + line);
            return line;

        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

}

Надеюсь, это поможет,

-1
задан MrGrimod 19 January 2019 в 22:38
поделиться

1 ответ

Если вы хотите проверить, правильно ли это, вы должны использовать:

800*640*3 == 1440000 

, но результатом будет «Ложь».

На самом деле 800*640*3 = 1536000.

0
ответ дан Maciej B 19 January 2019 в 22:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: