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 uygulamanızdaki widget'ları ana ekranlarına sabitlemelerine 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 sabitlemeyi başlatmak için GlanceAppWidgetManager sınıfındaki requestPinGlanceAppWidget yöntemini kullanın. Android'in daha eski sürümlerinde çalışan uygulamalar için bu değer false olur. Ancak istek sisteme başarıyla gönderilirse true değerini döndürür.

Aşağıda, sabitleme isteği oluşturma örneği verilmiştir:

@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ıftır ve MyWidget, sabitlemek istediğiniz Glance widget'ıdır. successCallback, widget başarıyla sabitlendiğinde tetiklenen bir PendingIntent nesnesidir.

PIN isteği yanıtını işleme

Kullanıcı, sabitleme isteği iletişim kutusuna yanıt verdiğinde uygulamanız bir yanıt alır. Kullanıcı isteği kabul ederse widget'ınız kullanıcının ana ekranına sabitlenir ve successCallback PendingIntent tetiklenir. Kullanıcı isteği reddederse hiçbir şey olmaz.

successCallback, yalnızca widget ana ekrana başarıyla eklendiğinde tetiklenir. Kullanıcı isteği reddederse veya başlatıcı sabitlemeyi desteklemiyorsa tetiklenmez.