Android 8.0(API レベル 26)以降では、アプリ内でウィジェットをユーザーのホーム画面に固定できます。アプリ内でウィジェットを直接宣伝することは、ユーザーが関連タスクを完了した後や、アプリの機能を繰り返し使用している場合に、ユーザー エンゲージメントを高める効果的な方法です。
固定リクエストを作成する
ウィジェットの固定を開始するには、requestPinGlanceAppWidget メソッド
を GlanceAppWidgetManager クラスから使用します。Android 8.0 以前のバージョンで実行されているアプリの場合、このメソッドは false
を返します。ただし、リクエストがシステムに正常に送信された場合は、true を返します。
固定リクエストを作成する方法の例を次に示します。
@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
です。
固定リクエストのレスポンスを処理する
ユーザーが固定リクエスト ダイアログに応答すると、アプリはレスポンスを受け取ります。ユーザーがリクエストを承諾すると、ウィジェットがホーム画面に固定され、successCallback PendingIntent
がトリガーされます。ユーザーがリクエストを拒否した場合、何も起こりません。
successCallback は、ウィジェットがホーム画面に正常に追加された場合にのみトリガーされます。ユーザーがリクエストを拒否した場合や、ランチャーが固定をサポートしていない場合はトリガーされません。