2

我正在開發一系列Android Wear 2錶盤,顯然我發現了一個我無法解決的問題。Android Wear 2中的未讀通知數併發症

在圖片中,您可以看到來自Google的兩個簡單的錶盤(對不起,我無法嵌入圖像)。 第一個來自Google Developer Codelabs示例項目。

Google Developer Codelabs watch face

第二個被默認安裝AW2它被稱爲「元素模擬」(但也有一個「數碼元素」,頗爲相似)。 我禁用了除左邊之外的所有其他複雜功能。

Elements analog watch face

兩個手錶面被示出從同一併發症數據提供者的信息,系統通知未讀計數(在併發症幫手,選擇常規 - >未讀通知計數)。

但是,正如您所看到的,相同的信息以兩種截然不同的方式顯示。

我的問題是,我不知道這是如何可能的。未讀通知計數併發症類型爲TYPE_ICON

根據文檔,與TYPE_ICON類型的併發症相關的ComplicationData中唯一的信息是一個圖標,可通過調用complicationData.getIcon()進行檢索。 而且,事實上,圖標就在那裏,它是未讀通知的實際數量的圖像。圓圈中數字的圖像(如您在第一張錶盤中看到的那樣)。 沒有鐘形圖標(第二個錶盤),另一個變量中沒有分開的未讀計數值。沒有。

我想我可以避免使用Complications Drawable方法繪製併發症並按我自己的方式做,但正如我所說,我知道的唯一一件複雜功能,當它被創建或更新時,就是它是TYPE_ICON類型。沒有其他的。沒有提供者名稱,沒有價值。只是一個數字圖標。

我錯過了什麼?我怎樣才能以類似於第二張圖片的方式繪製複雜圖案?

謝謝。

回答

1

我設法在第二張圖像(元素模擬錶盤)中繪製未讀數併發症,如我所願。

這是訂單的問題,其中聲明瞭複雜化支持類型。在Codelabs錶盤代碼(第一上述圖像),這是一個單一的併發症聲明順序:

TYPE_RANGED_VALUE, 
TYPE_ICON, 
TYPE_SHORT_TEXT, 
TYPE_SMALL_IMAGE 

正如你所看到的,TYPE_ICON型到來之前的TYPE_SHORT_TEXT之一。 這改變了未讀通知計數的數據提供者是系統數據提供者的方式,它組裝複雜數據。

通過以這種順序聲明併發症支持的類型:

TYPE_RANGED_VALUE, 
TYPE_SHORT_TEXT, 
TYPE_SMALL_IMAGE, 
TYPE_ICON 

併發症數據是在一個TYPE_SHORT_TEXT的形式,如所期望的鐘形圖標和未讀計數的值,。

我想這個文檔還不太清楚。 所有我發現(在這裏:https://developer.android.com/training/wearables/watch-faces/complications.html)是:

希望這有助於「類型應按優先順序給出更高的優先上市,通常與類型提供更多的信息,如遠程價值」。