Android 提供配置 Activity

2018-08-02 17:55 更新

編寫:heray1990 - 原文: http://developer.android.com/training/wearables/watch-faces/configuration.html

當用戶安裝一個包含表盤的可穿戴應(yīng)用的手持式應(yīng)用時,它們可以在手持式設(shè)備上的 Android Wear 配套應(yīng)用和在可穿戴設(shè)備上的表盤選擇器中使用。用戶可以在配套應(yīng)用上或者在可穿戴設(shè)備的表盤選擇器上選擇使用哪個表盤。

一些表盤提供配置參數(shù),讓用戶客制化表盤的外觀和行為。例如,一些表盤讓用戶選擇自定義的背景顏色,另一些表盤提供兩個不同時區(qū)的時間,使得用戶可以選擇感興趣的時區(qū)。

提供配置參數(shù)的表盤讓用戶通過可穿戴應(yīng)用的一個 activity、手持應(yīng)用的一個 activity或者兩者的 activity 來客制化表盤。用戶可以啟動可穿戴設(shè)備上的可穿戴配置 activity,他們也可以啟動 Android Wear 配套應(yīng)用的配套配置 activity。

Android SDK 中 WatchFace 示例的數(shù)字表盤介紹了如何實現(xiàn)手持式和可穿戴配置 activity 和如何應(yīng)配置變化而更新表盤。這個示例位于 android-sdk/samples/android-21/wearable/WatchFace 目錄。

指定配置 activity 的 Intent

如果表盤包括配置的 activity,那么添加下面的元數(shù)據(jù)項到可穿戴應(yīng)用 manifest 文件的服務(wù)聲明部分:

<service
    android:name=".DigitalWatchFaceService" ... />
    <!-- companion configuration activity -->
    <meta-data
        android:name=
           "com.google.android.wearable.watchface.companionConfigurationAction"
        android:value=
           "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
    <!-- wearable configuration activity -->
    <meta-data
        android:name=
           "com.google.android.wearable.watchface.wearableConfigurationAction"
        android:value=
           "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
    ...
</service>

在應(yīng)用的包名之前定義這些元數(shù)據(jù)項的值。配置 activity 為這個 intent 注冊 intent filters,然后系統(tǒng)在用戶想配置表盤時啟動這個 intent。

如果表盤只包括一個配套或者可穿戴配置 activity,那么我們只需要包括上述例子響應(yīng)的元數(shù)據(jù)項。

創(chuàng)建可穿戴配置 activity

可穿戴配置 activity 提供了有限組表盤客制化選擇,這是因為復(fù)雜的菜單在小屏幕上很難導航。我們的可穿戴配置 activity 應(yīng)該提供二元選擇和很少的選項來客制化表盤主要的方面。

為了創(chuàng)建一個可穿戴配置 activity,添加一個新的 activity 到可穿戴應(yīng)用并且在可穿戴應(yīng)用的 manifest 文件中聲明下面的 intent filter:

<activity
    android:name=".DigitalWatchFaceWearableConfigActivity"
    android:label="@string/digital_config_name">
    <intent-filter>
        <action android:name=
            "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
        <category android:name=
        "com.google.android.wearable.watchface.category.WEARABLE_CONFIGURATION" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

這個 intent filter 的 action 的名字必須與之前在指定配置 activity 的 Intent定義的 intent 名字一樣。

在我們的配置 activity 中,構(gòu)建一個簡單的 UI 為用戶提供選擇來客制化表盤。當用戶做出選擇時,使用可穿戴數(shù)據(jù)層 API傳達配置的變化給表盤 activity。

更多詳細內(nèi)容,請見 WatchFace 示例中的 DigitalWatchFaceWearableConfigActivity 和 DigitalWatchFaceUtil 類。

創(chuàng)建配套配置 activity

配套配置 activity 讓用戶可以訪問全套表盤客制化選擇,這是因為在手持式設(shè)備更大的屏幕上,用戶更加容易與復(fù)雜的菜單互動。例如,手持設(shè)備上的一個配置 activity 向用戶顯示復(fù)雜的顏色選擇器,讓用戶從該選擇器中選擇表盤的背景顏色。

為了創(chuàng)建配套配置 activity,添加一個新的 activity 到手持應(yīng)用并且在手持應(yīng)用的 manifest 文件中聲明下面的 intent filter:

<activity
    android:name=".DigitalWatchFaceCompanionConfigActivity"
    android:label="@string/app_name">
    <intent-filter>
        <action android:name=
            "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
        <category android:name=
        "com.google.android.wearable.watchface.category.COMPANION_CONFIGURATION" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

在我們的配置 activity 中,構(gòu)建一個 UI 為用戶提供選項來客制化表盤所有的可配置組件。當用戶做出選擇時,使用可穿戴數(shù)據(jù)層 API傳達配置的變化給表盤 activity。

更多詳細內(nèi)容,請見 WatchFace 示例中的 DigitalWatchFaceCompanionConfigActivity 類。

在可穿戴應(yīng)用中創(chuàng)建一個監(jiān)聽器服務(wù)

為了接收配置 activity 中已更新的配置參數(shù),需要在可穿戴應(yīng)用創(chuàng)建一個服務(wù)來實現(xiàn)可穿戴數(shù)據(jù)層 API 的 WearableListenerService 接口。我們的表盤實現(xiàn)可以在配置參數(shù)改變時重新繪制表盤。

更多詳細內(nèi)容,請見 WatchFace 示例的 DigitalWatchFaceConfigListenerService 和 DigitalWatchFaceService 類。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號