У меня запущена служба переднего плана, и когда она заблокирована, я хочу дважды нажать на нее, чтобы открыть действие, пока оно еще заблокировано, или, по крайней мере, в макете, к которому можно добавить прослушиватели onclick.
Я пробовалсоздание действия с:
Intent notifyIntent = new Intent(this, activityname.class);
notifyIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent notifyPendingIntent = PendingIntent.getActivity(
this, 0, notifyIntent, PendingIntent.FLAG_UPDATE_CURRENT
);
Работает, когда не заблокировано, когда заблокировано, оно просто запрашивает пароль и запускает его после ввода пароля.
В добавленном мною действии
if (Build.VERSION.SDK_INT >= 27) {
setShowWhenLocked(true);
setTurnScreenOn(true);
} else {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
}
setContentView(R.layout.activityname_layout);
И действие в манифесте таково:
<activity
android:name=".activityname"
android:configChanges="orientation"
android:excludeFromRecents="true"
android:noHistory="true"
android:showOnLockScreen="true"
android:screenOrientation="portrait"
android:launchMode="singleTask"
android:taskAffinity=""
android:theme="@style/AppTheme.NoActionBar" />
Я ничего не могу с этим поделать и ожидаю, что мне следует использовать другой подход.Как отобразить интерактивный макет, пока он заблокирован?