Есть ли у Android способ определения cyanogenmod и его версии? - PullRequest
2 голосов
/ 21 марта 2012

Я работаю на Android Media Player, который нуждается в эквалайзере. Однако эквалайзер доступен только на Gingerbread и выше, но cyanogenmod 6 изменил аудиофлингер, чтобы он действовал как эквалайзер, поэтому я хочу определить версию ОС.

Ответы [ 3 ]

4 голосов
/ 31 июля 2014

На сегодняшний день ядро ​​cyanogenmod не содержит ключевое слово cyanogenmod в System.getProperty("os.version"); Это что-то вроде 3.0.64-CM-g9d16c8a. Вот я и написал эту функцию.

private boolean isCyanogenMod(PackageManager pm) {
    boolean isCyanogenMod = false;
    String version = System.getProperty("os.version");
    BufferedReader reader = null;

    try {
        if (version.contains("cyanogenmod") || pm.hasSystemFeature("com.cyanogenmod.android")) {
            isCyanogenMod = true;
        }
        else {                
            // This does not require root
            reader = new BufferedReader(new FileReader("/proc/version"), 256);
            version = reader.readLine();

            if (version.contains("cyanogenmod")) {
                isCyanogenMod = true;
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    finally {
        if(reader != null) {
            try { reader.close(); } catch (IOException e) { }
        }
    }

    return isCyanogenMod;
}
4 голосов
/ 21 марта 2012

Вы можете прочитать свойство os.version и сравнить с ним:

String version = System.getProperty("os.version");
if (version.contains("cyanogenmod")) {
    isCyanogenMode = true;
}

На моем устройстве os.version равно 2.6.37.6-cyanogenmod-01509-g8913be8.

2 голосов
/ 20 ноября 2015

Ну, это старый вопрос, но я недавно придумал лучшее решение, на мой взгляд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...