Все нативное приложение, реагирующее на реакцию, отображается на экране блокировкиAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Все нативное приложение, реагирующее на реакцию, отображается на экране блокировки

Сообщение Anonymous »

У меня есть приложение со следующим кодом в MainActivity.java:
package com.MyApp;

import com.facebook.react.ReactActivity;
import com.facebook.react.ReactActivityDelegate;
import com.facebook.react.ReactRootView;
import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
import android.view.Window;
import android.view.WindowManager;
import android.os.Bundle;
import com.MyApp.CustomLockscreenPackage;

public class MainActivity extends ReactActivity {

@Override
protected String getMainComponentName() {
return "MyApp";
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Window w = getWindow();
w.setFlags(
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED,
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
);
}

@Override
protected ReactActivityDelegate createReactActivityDelegate() {
return new ReactActivityDelegate(this, getMainComponentName()) {
@Override
protected ReactRootView createRootView() {
return new RNGestureHandlerEnabledRootView(MainActivity.this);
}
};
}
}


Строки, которые обеспечивают работу приложения на экране блокировки:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Window w = getWindow();
w.setFlags(
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED,
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
);
}

Но все приложение работает на экране блокировки, и мне нужно, чтобы на экране блокировки работали только определенные экраны (это приложение для звонков).
Я пытался создать собственный модуль, но не получилось.
Я знаю, что можно удалить флаги с помощью:
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);

Итак, если я смогу вызвать эти строки на своем собственном экране реагирования, это, вероятно, сработает.
[EDIT]: я создал модуль, который делает это за меня: response-native-keep-awake
[EDIT]: Как использовать мой модуль:
прежде всего, установите его:
npm install --save https://github.com/willnaoosmit/react-n ... ep-visible
(или пряжей, если хотите)
затем:
import KeepAwake from 'react-native-keep-awake'; #import the module, of course

KeepAwake.activate(); #when you want to use the app on the lockscreen

KeepAwake.deactivate(); #when you dont want to use the app on the lockscreen anymore


Подробнее здесь: https://stackoverflow.com/questions/596 ... lockscreen
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»