如何确定应用程序是否在库存ROM上运行

时间:2013-12-25 12:24:44

标签: android samsung-mobile htcsense

我正在编写一个需要区分Android Stock ROM和其他ROM(如SenseUI等)的应用程序。

我如何在我的申请中做到这一点?

感谢。

1 个答案:

答案 0 :(得分:2)

我发现使用ro.product.brand查询getprop正是我所需要的。

/**
 * Returns the ROM manufacturer.
 *
 * @return The ROM manufacturer, or NULL if not found.
 */
public static String getROMManufacturer() {
    String line;
    BufferedReader input = null;
    try {
        Process p = Runtime.getRuntime().exec("getprop ro.product.brand");
        input = new BufferedReader(new InputStreamReader(p.getInputStream()), 1024);
        line = input.readLine();
        input.close();
    }
    catch (IOException ex) {
        Log.e(TAG, "Unable to read sysprop ro.product.brand", ex);
        return null;
    }
    finally {
        if (input != null) {
            try {
                input.close();
            }
            catch (IOException e) {
                Log.e(TAG, "Exception while closing InputStream", e);
            }
        }
    }
    return line;
}

对于库存ROM,我们获得的值是谷歌
例如,对于SenseUI,我们将返回 HTC

上述方法将返回唯一谷歌 HTC 等...

我希望它也帮助了其他人。