В Android 8.0 (уровень API 26) и более поздних версиях пользователи могут закреплять виджеты на главном экране прямо из приложения. Это отличный способ повысить вовлеченность, особенно после того, как пользователь выполнит связанную задачу или несколько раз воспользуется определенной функцией.
Как создать запрос на получение PIN-кода
Чтобы закрепить виджет, используйте метод requestPinGlanceAppWidget из класса GlanceAppWidgetManager. Для приложений, работающих на более ранних версиях Android, возвращается значение false. Однако если запрос успешно отправлен в систему, возвращается значение true.
Вот пример того, как можно создать запрос на получение PIN-кода:
@Composable fun AnInAppComposable() { val context = LocalContext.current val coroutineScope = rememberCoroutineScope() Button( onClick = { coroutineScope.launch { GlanceAppWidgetManager(context).requestPinGlanceAppWidget( receiver = MyWidgetReceiver::class.java, preview = MyWidget(), previewState = DpSize(245.dp, 115.dp) ) } } ) {} }
В этом примере MyWidgetReceiver – класс, который получает обратные вызовы виджета, а MyWidget – виджет Glance, который вы хотите закрепить. successCallback – это PendingIntent, который срабатывает, когда виджет успешно закреплен.
Как обрабатывать ответ на запрос PIN-кода
Когда пользователь отвечает на запрос PIN-кода, ваше приложение получает ответ. Если пользователь примет запрос, ваш виджет будет закреплен на главном экране, а событие successCallback PendingIntent будет активировано. Если пользователь отклонит запрос, ничего не произойдет.
Важно отметить, что successCallback срабатывает только в том случае, если виджет успешно добавлен на главный экран. Оно не запускается, если пользователь отклоняет запрос или если лаунчер не поддерживает закрепление.