Android 8.0(API レベル 26)以上では、アプリ内でウィジェットをホーム画面に固定できるようにすることができます。アプリ内で直接ウィジェットを宣伝することは、ユーザー エンゲージメントを高めるうえで非常に効果的です。特に、ユーザーが関連するタスクを完了した後や、アプリ内の機能を繰り返し利用している場合に効果があります。
PIN リクエストを作成する
ウィジェットのピン留めを開始するには、GlanceAppWidgetManager
クラスの requestPinGlanceAppWidget
メソッドを使用します。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
は、ウィジェットがホーム画面に正常に追加された場合にのみトリガーされることに注意してください。ユーザーがリクエストを拒否した場合や、ランチャーが固定をサポートしていない場合はトリガーされません。