2016-11-01 4 views
0

あなたのアプリのテーマを設定することはできますが、どのデバイスがそのデバイスで使用されているかを知ることができるかどうかは疑問です。現在、私のアプリはTheme.AppCompat.Lightを使用しています。私はテーマを変更しないでください。Androidデバイステーマを検出する(暗いか明るいか)

P.S.私はすでにそれをTheme.DeviceDefaultに設定しようとしましたが、反射を使ってそのIDにアクセスしましたが、これまでの運はありません。

try { 
    setTheme(android.R.style.Theme_DeviceDefault); 

    Class<Context> contextClass = Context.class; 
    Method getThemeMethod = contextClass.getMethod("getThemeResId"); 
    getThemeMethod.setAccessible(true); 
    Log.d("Test", "" + getThemeMethod.invoke(this)); // Always returns 0 

    PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_META_DATA); 
    Log.d("Test", getResources().getResourceEntryName(packageInfo.applicationInfo.theme)); // Returns 'Theme.DeviceDefault' 
} catch (Exception e) { 
    Log.d("Test", "exception", e); 
} 
+0

を求めているに役立つかもしれませんか? – Doomsknight

+0

あなたのIDEによって基本的にテーマが選択されています。あなたがテーマを変更できるのを避けたい場合。 – Real73

+0

@Doomsknightいいえ、私はデバイスのデフォルトテーマを使いたくありません。このテーマが暗いか軽いかどうかを伝えたいと思います。 – Nikolai

答えて

0

これは、デバイス設定のテーマを使用する方法、ContextThemeWrapper

+0

ありがとうございますが、私はデバイステーマを適用したくありません。私はすでにここでこの提案を見てきました:http://stackoverflow.com/a/26302184/3185295 – Nikolai

+0

これは、現在どのテーマが現在のデバイスであるかを知りたいだけですか? –

+0

はい、それは私が探しているものです。 – Nikolai

関連する問題