2016-07-14 1 views
1

私はアプリごとに画面の暖かさを制御できるようにするアプリを開発しようとしています。この機能はmiuiの読み込みモードの名前で提供されます。私が達成しようとしていますf.luxのようなアンドロイドの画面色温度を操作する方法

行動はここに表されます。http://en.miui.com/thread-170033-1-1.html

私は同じことを達成するには、Androidで使用するのか分かりません。私に役立つAndroidやAPIがありますか?

+0

いくつかのサンプルコードが正常に動作しましたか? – Guillaume

答えて

2

SurfaceFlingerと通信して、色変換マトリックス(トランザクション1015、トークン "android.ui.ISurfaceComposer"、データは32ビット整数、その​​後に16個の浮動小数点で構成されます)を送信する必要があります。 AndroidソースコードでSurfaceFlinger.cppsystem accessibility settingsの色反転コードをご覧ください。これにより、好きなカラー変換マトリックスを設定できます。少なくとも私はそれを私のColorChanger appでやっている。

次に、カスタム色変換マトリックスを使用して、色温度を再マッピングすることができます。

アプリのシステム署名がない限り、rootを使用して、SurfaceFlingerとネイティブに通信するか、かなりの量のリフレクションを使用するJavaコードを起動する必要があります。

さらに、これはAndroid 5.0以上でのみ機能します。私のColorChangerは、4.4で動作させるのに非常に面倒な方法を持っていますが、私を信じて、あなたはそこに行きたくありません。

代わりに、CF.lumenのようなさらに低レベルのものを行うこともできます。私はChainfireがディスプレイドライバの一部を書き換えると思う。私は/ systemへの書き込みアクセス権がない場合、これが動作するかどうかはわかりません。

+0

「ColorChanger App」へのリンクが壊れています。とにかく、お返事いただきありがとうございます。説明された動作を達成するための唯一の方法ですか? – light

+0

私の知る限り、これはさまざまなデバイスでこれを行う唯一の方法です。 Samsung Galaxy Sデバイスには、多くのカラーコントロールが可能なMDNIEシステムがあります。私はGalactic Nightアプリで使用しましたが、そのアプリは新しいモデルでは動作していません。おそらく更新される可能性がありますが、あなたがモデルの1つを持っていて自分でそれを必要としない限り、それが価値があるためにモデル間にはあまりにも大きな違いがあります。 –

関連する問題