常時オンアプリとシステムのアンビエント モード

Wear OS は、ユーザーが操作していない場合、アクティブなアプリの省電力モードへの移行を自動的に処理します。 ウォッチの使用時間が長くなっていますこれを、システムの「常に画面表示モード」と呼びます。ユーザーが スマートウォッチが一定の時間内に再度アクセスすると、Wear OS はユーザーをアプリに戻し、 中断したところです

特定のユースケース(例: ユーザーがエクササイズ中に心拍数とペースを確認したい場合) ランニング - あなた また、常に画面表示モードで表示する情報も管理できます。実行される Wear OS アプリ 常に画面表示モードとインタラクティブ モードの両方を常時オンアプリと呼びます。

アプリを常に表示するとバッテリー駆動時間に影響するため、追加する際はその影響を考慮してください 追加できます

プロジェクトを構成する

常に画面表示モードをサポートする手順は次のとおりです。

  1. プロジェクトの構成に基づいて、プロジェクトを作成または更新します。 作成 ウェアラブル アプリのページをご覧ください。
  2. Android マニフェスト ファイルに WAKE_LOCK 権限を追加します。
<uses-permission android:name="android.permission.WAKE_LOCK" />

常時オンモードを有効にする

<ph type="x-smartling-placeholder"></ph>を使用するには AmbientLifecycleObserver クラスを使用して、次の操作を行います。

  1. を実装する AmbientLifecycleObserver.AmbientLifecycleCallback インターフェースを使用します。 この段階ではメソッドは空ですが、変更内容の詳細はこのガイドの後半で説明します 常に画面表示モードの開始と終了については、可視化を実行する必要があります。

    Kotlin

    val ambientCallback = object : AmbientLifecycleObserver.AmbientLifecycleCallback {
        override fun onEnterAmbient(ambientDetails: AmbientLifecycleObserver.AmbientDetails) {
        // ... Called when moving from interactive mode into ambient mode.
        }
    
        override fun onExitAmbient() {
        // ... Called when leaving ambient mode, back into interactive mode.
        }
    
        override fun onUpdateAmbient() {
        // ... Called by the system in order to allow the app to periodically
        // update the display while in ambient mode. Typically the system will
        // call this every 60 seconds.
        }
    }
  2. AmbientLifecycleObserver を作成し、オブザーバーを登録します。通常、この Wear OS 向け Compose を使用している場合は、onCreate() またはトップレベル コンポーザブルで使用します。 これにより、アクティビティのライフサイクル全体で常時オン動作を有効にできます。

    Kotlin

    private val ambientObserver = AmbientLifecycleObserver(activity, callback)
    
    override fun onCreate(savedInstanceState: Bundle) {
      super.onCreate(savedInstanceState)
      lifecycle.addObserver(observer)
    
      // ...
    }
  3. オブザーバーを削除するには、removeObserver() を呼び出して(常時オンの場合) 動作が不要になります。たとえば、Terraform でこのメソッドを呼び出して、 onDestroy() メソッドを できます。

常時オンアプリをバックグラウンドに移動できます

Wear OS 5 以降では、常時オンのアプリは 背景モードで一定時間表示されている。ユーザーができること システム設定でタイムアウトを構成します。

常時稼働アプリに、実行中のユーザータスクに関する情報( 音楽再生やワークアウト セッションなどのアクティビティは、 表示されます。そのためには、Ongoing Activity API を使用して投稿します。 常時オンのアクティビティにリンクされた進行中の通知。

システムが進行中のアクティビティを認識するために、 通知のタップ インテントは、図に示すように、常時オンアクティビティを指している必要があります。 次のコード スニペットを追加します。

// Create a pending intent that point to your always-on activity
val touchIntent =
    PendingIntent.getActivity(
        context,
        0,
        Intent(context, MyAlwaysOnActivity::class.java),
        PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
    )

val notificationBuilder =
    NotificationCompat.Builder(this, CHANNEL_ID)
    // ...
    .setOngoing(true)

val ongoingActivity =
    OngoingActivity.Builder(
        applicationContext, NOTIFICATION_ID, notificationBuilder
    )
    // ...
    .setTouchIntent(touchIntent)
    .build()

ongoingActivity.apply(applicationContext)

notificationManager.notify(
    NOTIFICATION_ID,
    notificationBuilder.build()
)

「常に画面表示モード」での外観を変更する

デフォルトでは、常時表示を実装すると、画面の 画面表示この設定は 動作させることで、 AmbientLifecycleCallback

バッテリーを節約するには、次のようにします。

  • 明るいピクセルを減らし、画面の大部分を黒にします。検討事項 常に画面表示モードでは重要な情報のみが表示され、 ユーザーがインタラクティブ モードに入ったときの詳細が表示されます。
  • 更新頻度が低くなるようコンテンツを調整します。たとえば、タイマーを表示して 秒単位ではなく最も近い分単位で表示できます
  • AmbientDetails onEnterAmbient() に渡されるオブジェクト: <ph type="x-smartling-placeholder">
      </ph>
    • deviceHasLowBitAmbient が設定されている場合、可能であればアンチ エイリアスを無効にします。
    • burnInProtectionRequired が設定されている場合、表示をシフトする 白く点灯しないようにします。

Wear OS 向け Compose を使用する場合は、次のコールバック メソッドを使用することをおすすめします。 更新して状態を更新し、システムが UI を適切に構成する必要があります。

これを行う方法の例については、Compose ベースの GitHub の演習サンプルでは、AmbientAware Horologist ライブラリのコンポーザブルを使用します。