На SO уже есть очень похожие вопросы, но ни одно из решений мне не подходит.
Я получаю сообщение об ошибке "Необходимо указать допустимый уровень блокировки пробуждения".
Вот мой код:
public class MainActivity extends ReactActivity implements ReactInstanceManager.ReactInstanceEventListener{
@Override
protected String getMainComponentName() {
return "abc";
}
private ReactContext mReactContext;
private PowerManager.WakeLock sCpuWakeLock;
private Activity activity;
private static final String TAG = "MainActivity";
public void onReactContextInitialized(ReactContext context) {
Log.d(TAG, "Here's your valid ReactContext");
activity = context.getCurrentActivity();
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
int flags = PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE;
sCpuWakeLock = pm.newWakeLock(flags, activity.getClass().getName());
sCpuWakeLock.acquire();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
setShowWhenLocked(true);
setTurnScreenOn(true);
}
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RNBootSplash.init(R.drawable.bootsplash, MainActivity.this);
getReactInstanceManager().addReactInstanceEventListener(this);
Использование блокировки пробуждения таким образом в других частях моего приложения не приводит к сбою. Почему в этом экземпляре возникает ошибка?