Re: Android版:スリープ状態にしない ( No.1 ) |
- 名前:管理人 日時:2017/03/23 01:07
こちらは Java のコードですね
Java のコードも C++ のコードから実行することができるのですが、
DXライブラリAndroid版での android_main を実行しているスレッドはメインスレッドとは
別のスレッドなので、Android用の API は結構メインスレッド以外のスレッドから呼ぶと
クラッシュするものが多いので、仮にそうだとすると少し骨が折れるかもしれません
すみません、今週はもう週末まで作業の時間を確保することができそうに無いので、
週末に試してみたいと思います m(_ _;m
|
Re: Android版:スリープ状態にしない ( No.2 ) |
- 名前:ギウ 日時:2017/03/23 07:23
ご回答有難うございます!
(Javaでしたか、、すみません)
>クラッシュするものが多いので、仮にそうだとすると少し骨が折れるかもしれません
了解しました。
こちらでのAPIの使用が難しい場合は無くて大丈夫です。
では、お願いしてるだけで申し訳ありませんがDXライブラリ側でのご対応お待ちしております。
|
Re: Android版:スリープ状態にしない ( No.3 ) |
- 名前:管理人 日時:2017/03/26 15:20
少し調べたところ、Android NDK の機能に getWindow().addFlags と getWindow().clearFlags に
相当する機能がありました
まず、設定を行う処理を記述するソースでは以下の記述を増やして Android/window.h をインクルード
するようにしてください
#include <Android/window.h>
次に、例えば
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
と同等の設定を行う場合は
ANativeActivity_setWindowFlags( ( ANativeActivity * )GetNativeActivity(), AWINDOW_FLAG_KEEP_SCREEN_ON, 0 ) ;
と記述します、
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
と同じ設定解除を行う場合は
ANativeActivity_setWindowFlags( ( ANativeActivity * )GetNativeActivity(), 0, AWINDOW_FLAG_KEEP_SCREEN_ON ) ;
と記述します、ANativeActivity_setWindowFlags は
void ANativeActivity_setWindowFlags( ANativeActivity* activity,
uint32_t addFlags, uint32_t removeFlags );
となっていて、第一引数の ANativeActivity * はDXライブラリAndroid版専用の関数 GetNativeActivity で取得することが
できます( 戻り値が const ANativeActivity * なので、ANativeActivity * にキャストしています )
第二引数の addFlags が、設定したいフラグの指定で、フラグの一覧は Android/window.h に定義されています
第三引数の removeFlags が、設定を解除したいフラグの指定なので、clearFlags と同じ処理を行いたい場合はこちらに
解除したいフラグを指定するというわけです
よろしければお試しください m(_ _)m
|
Re: Android版:スリープ状態にしない ( No.4 ) |
- 名前:ギウ(解決) 日時:2017/03/26 19:52
情報有難うございます!
(どうやって調べたのか、流石です)
こちらでも動作確認できました。
詳しいご解説も有難うございます!
|