क्या मेरा ऐप चलने के दौरान स्क्रीनसेवर को अक्षम करने का कोई तरीका है?
स्क्रीन की डिमिंग का मेरा मतलब है।
क्या मेरा ऐप चलने के दौरान स्क्रीनसेवर को अक्षम करने का कोई तरीका है?
स्क्रीन की डिमिंग का मेरा मतलब है।
जवाबों:
आप कुछ इस तरह का उपयोग करना चाहते हैं:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
मैंनें इस्तेमाल किया:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
स्क्रीन टाइमआउट और अक्षम करने के लिए
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
इसे फिर से सक्षम करने के लिए।
एक XML तरीका भी है जिसे Google अनुशंसा करता है:
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:keepScreenOn="true">
Google स्लाइड की जाँच करें - स्लाइड 16।
"Wakelocks महंगा है अगर भूल गए (...) Android का उपयोग करने पर विचार करें: शुद्धता सुनिश्चित करने के लिए स्क्रीनस्क्रीन रखें"
PowerManager.newWakeLockऔर getWindow().addFlagsकिसी कारण से काम नहीं किया, यह किया।
यह नोट करने के लिए महत्वपूर्ण है कि इन विधियों को काम करने के लिए UI थ्रेड से चलाया जाना चाहिए। एंड्रॉयड कॉर्डोबा ऐप में जावास्क्रिप्ट से KeepScreenOn बदलते देखें
आपके MainActivityऔर आपके ऐप में सरल रेखा नीचे दी गई लाइट को कभी बंद न करें।
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
एक दृश्य में, मेरे मामले में एक सरफेस व्यू उपवर्ग, आप स्क्रीन को हमेशा ऑन कर सकते हैं। मैं चाहता था कि स्क्रीन बनी रहे जबकि यह दृश्य अभी भी सामान खींच रहा था।
public class MyCoolSurfaceView extends SurfaceView {
@Override
protected void onAttachedToWindow (){
super.onAttachedToWindow();
this.setKeepScreenOn(true);
}
@Override
protected void onDetachedFromWindow(){
super.onDetachedFromWindow();
this.setKeepScreenOn(false);
}
इसे onStart पर लगाएं
PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "no sleep"); wakeLock.acquire();
और यह आप पर प्रकट होता है
<uses-permission android:name="android.permission.WAKE_LOCK" />
भूलना मत
wakeLock.release();
onStop पर
PARTIAL_WAKE_LOCKस्क्रीन को बंद करने की अनुमति देता है।
इसे हल करने का यह सबसे अच्छा तरीका है
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
android:keepScreenOn="true"
इसे संभालने का सबसे अच्छा तरीका है यदि हम हर समय किसी विशेष स्क्रीन को जागृत करना चाहते हैं अन्यथा इसे सक्षम करने और इसे अक्षम करने के लिए हमें स्वयं को संभालना होगा
https://developer.android.com/training/scheduling/wakelock.html
procedure SetSleep(aEnable:Boolean);
var
vFlags: integer;
begin
vFlags := TJWindowManager_LayoutParams.JavaClass.FLAG_TURN_SCREEN_ON or
TJWindowManager_LayoutParams.JavaClass.FLAG_DISMISS_KEYGUARD or
TJWindowManager_LayoutParams.JavaClass.FLAG_SHOW_WHEN_LOCKED or
TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON;
if aEnable then
begin
CallInUIThread ( // uses FMX.Helpers.Android
procedure
begin
TAndroidHelper.Activity.getWindow.setFlags (vFlags, vFlags);
end );
end
else
CallInUIThread (
procedure
begin
TAndroidHelper.Activity.getWindow.clearFlags (vFlags);
end );
end;
5.getindow ()। AddFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON), मूल निवासी Android के लिए सबसे अच्छा समाधान है।
2. यदि आप React android एप्लीकेशन के साथ करना चाहते हैं तो कृपया नीचे दिए गए कोड का उपयोग करें।
@ReactMethod
public void activate() {
final Activity activity = getCurrentActivity();
if (activity != null) {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
});
}
}
यह वेक लॉक प्राप्त करके किया जा सकता है।
मैंने खुद इसका परीक्षण नहीं किया, लेकिन यहां इस पर एक छोटा ट्यूटोरियल है।
View#setKeepScreenOnसमकक्ष या इसके xml लेआउट विशेषता का उपयोग करें ,android:keepScreenOn="true"
WakeLock।
android:keepScreenOn="true"मेरी राय में गतिविधियों के लिए एकमात्र मान्य उत्तर है। जब तक बिल्कुल आवश्यक न हो, वैकलॉक से दूर रहें।
View.setKeepScreenOn()[लिंक] [1] का उपयोग करने के बारे में क्या ?. हालांकि मैंने इसे खुद कभी इस्तेमाल नहीं किया है। [१]: developer.android.com/reference/android/view/…