Android 提供配置 Activity

2018-08-02 17:55 更新

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

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

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

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

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

指定配置 activity 的 Intent

如果表盤包括配置的 activity,那么添加下面的元數(shù)據(jù)項(xiàng)到可穿戴應(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ù)項(xiàng)的值。配置 activity 為這個(gè) intent 注冊(cè) intent filters,然后系統(tǒng)在用戶想配置表盤時(shí)啟動(dòng)這個(gè) intent。

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

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

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

為了創(chuàng)建一個(gè)可穿戴配置 activity,添加一個(gè)新的 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>

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

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

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

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

配套配置 activity 讓用戶可以訪問全套表盤客制化選擇,這是因?yàn)樵谑殖质皆O(shè)備更大的屏幕上,用戶更加容易與復(fù)雜的菜單互動(dòng)。例如,手持設(shè)備上的一個(gè)配置 activity 向用戶顯示復(fù)雜的顏色選擇器,讓用戶從該選擇器中選擇表盤的背景顏色。

為了創(chuàng)建配套配置 activity,添加一個(gè)新的 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)建一個(gè) UI 為用戶提供選項(xiàng)來(lái)客制化表盤所有的可配置組件。當(dāng)用戶做出選擇時(shí),使用可穿戴數(shù)據(jù)層 API傳達(dá)配置的變化給表盤 activity。

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

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

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

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)