Bir Bakışta widget'larını uygulama içinde sabitleme

Android 8.0 (API düzeyi 26) ve sonraki sürümlerde, kullanıcıların widget'larınızı uygulamanızdan ana ekranlarına sabitlemesine izin verebilirsiniz. Widget'ları doğrudan uygulamanızda tanıtmak, özellikle kullanıcı ilgili bir görevi tamamladıktan sonra veya uygulamanızdaki bir özelliğe tekrar tekrar eriştiğinde kullanıcı etkileşimini artırmanın harika bir yoludur.

PIN isteği oluşturma

Widget'ı sabitleme işlemini başlatmak için requestPinGlanceAppWidget sınıfındaki GlanceAppWidgetManager yöntemini kullanın. Android'in daha eski sürümlerinde çalışan uygulamalar için bu işlev false değerini döndürür. Ancak istek sisteme başarıyla gönderilirse bu işlev true değerini döndürür.

PIN isteğini nasıl oluşturabileceğinize dair bir örneği aşağıda bulabilirsiniz:

@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)
                )
            }
        }
    ) {}
}

Bu örnekte MyWidgetReceiver, widget'ın geri çağırmalarını alan sınıf, MyWidget ise sabitlemek istediğiniz Glance widget'ıdır. successCallback, widget başarıyla sabitlendiğinde tetiklenen bir PendingIntent'dir.

Pin İsteği Yanıtını İşleme

Kullanıcı pin isteği iletişim kutusunu yanıtladığında uygulamanız bir yanıt alır. Kullanıcı isteği kabul ederse widget'ınız ana ekranına sabitlenir ve successCallback PendingIntent tetiklenir. Kullanıcı isteği reddederse hiçbir şey olmaz.

successCallback işlevinin yalnızca widget ana ekrana başarıyla eklendiğinde tetiklendiğini unutmayın. Kullanıcı isteği reddederse veya başlatıcı sabitlemeyi desteklemiyorsa tetiklenmez.