あなたのアプリのテーマを設定することはできますが、どのデバイスがそのデバイスで使用されているかを知ることができるかどうかは疑問です。現在、私のアプリは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);
}
を求めているに役立つかもしれませんか? – Doomsknight
あなたのIDEによって基本的にテーマが選択されています。あなたがテーマを変更できるのを避けたい場合。 – Real73
@Doomsknightいいえ、私はデバイスのデフォルトテーマを使いたくありません。このテーマが暗いか軽いかどうかを伝えたいと思います。 – Nikolai