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

Программисты JAVA общаются здесь
Ответить
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 МБ.

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