我可以在没有root权限的情况下阅读Android支持的语言吗?

时间:2015-08-03 08:04:34

标签: android

我可以阅读Android设备支持的语言吗?我知道我们可以阅读当前的语言,但我想阅读所有语言。

Afaik,它在System / Fonts中。但是我可以在不使设备生根的情况下访问它吗?

编辑:我在Moto-G上尝试了Locale,列表中包含古吉拉特语,这似乎是因为v.5.0.2支持该语言,但该设备不支持古吉拉特语字体。需要知道特定设备支持哪些字体,以便我可以决定是否渲染它们。

1 个答案:

答案 0 :(得分:0)

这对我有用!

public void checkSupportedFonts() {

    mLanguageFonts = new HashMap<String, String>();

    mLanguageFonts.put("en-US", "ab");
    mLanguageFonts.put("hi-IN", "अआ");
    mLanguageFonts.put("bn-IN", "অআ");
    mLanguageFonts.put("gu-IN", "અઆ");
    mLanguageFonts.put("mr-IN", "अआ");
    mLanguageFonts.put("ta-IN", "அஆ");
    mLanguageFonts.put("te-IN", "అఆ");
    mLanguageFonts.put("kn-IN", "ಅಆ");
    mLanguageFonts.put("ml-IN", "അആ");

    Iterator<Entry<String, String>> languageIterator = mLanguageFonts.entrySet().iterator();
    while (languageIterator.hasNext()) {
        Map.Entry<String, String> pair = (Entry<String, String>)languageIterator.next();
        String font = pair.getValue().toString();

        if(isSupported(font))
            Log.d(TAG, "language is supported : " + pair.getKey());
        else
            Log.d(TAG, "language is unsupported : " + pair.getKey());
        }
}

private boolean isSupported(String text) 
{

    String char1 = text.substring(0, 1);
    text = text.substring(1, 2);
    Bitmap bitmap1 = generateBitmap(context, char1);
    Bitmap bitmap2 = generateBitmap(context, text);
    boolean res = !bitmap1.sameAs(bitmap2);
    bitmap1.recycle();
    bitmap2.recycle();
    return res;
}