Как запуститьActivityAndCollapse(PendingIntent) из быстрых настроек на заблокированном экране?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как запуститьActivityAndCollapse(PendingIntent) из быстрых настроек на заблокированном экране?

Сообщение Anonymous »

Я хочу, чтобы отображалось действие, когда пользователи нажимают на плитку быстрых настроек, когда экран заблокирован. Это работает, как и ожидалось, с использованием метода startActivityAndCollapse, принимающего Intent в качестве параметра (не рекомендуется на уровне API 34).

Код: Выделить всё

public class MyTileService extends TileService {
@Override
public void onClick() {
Intent intent = new Intent(this.getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);

this.startActivityAndCollapse(intent);
}
}
Активность по-прежнему отображается с использованием метода, принимающего PendingIntent в качестве параметра (добавленного на уровне API 34), но мне нужно разблокировать устройство, чтобы отобразить активность.
Активность по-прежнему отображается с использованием метода, принимающего PendingIntent в качестве параметра (добавленного на уровне API 34), но мне нужно разблокировать устройство, чтобы отобразить активность.
Активность по-прежнему отображается с использованием метода, принимающего PendingIntent в качестве параметра (добавленного на уровне API 34), но мне нужно разблокировать устройство, чтобы отобразить активность.
Активность по-прежнему отображается с использованием метода, принимающего PendingIntent в качестве параметра (добавлено на уровне API 34), но мне нужно разблокировать устройство, чтобы отобразить активность.
Активность по-прежнему отображается с использованием метода, принимающего PendingIntent в качестве параметра (добавленного на уровне API 34). р>

Код: Выделить всё

public class MyTileService extends TileService {
@Override
public void onClick() {
Context appContext = this.getApplicationContext();
Intent intent = new Intent(this.getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);

if (Build.VERSION.SDK_INT >= 34) {
PendingIntent pendingIntent = PendingIntent.getActivity(
appContext, 0, intent, PendingIntent.FLAG_IMMUTABLE
);
this.startActivityAndCollapse(pendingIntent); //have to unlock
} else {
this.startActivityAndCollapse(intent);
}
}
}
Для полноты фрагмент из MainActivity:

Код: Выделить всё

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
setShowWhenLocked(true);
}
В первом примере кода показаны действия на моем заблокированном устройстве Android 14.

Второй пример заставляет меня разблокировать устройство после нажатия на плитку быстрых настроек.

Как я могу предотвратить использование последнего API PendingIntent?

Подробнее здесь: https://stackoverflow.com/questions/787 ... locked-scr
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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