2014年10月5日 星期日

[Android] L - User Interface (使用者介面)


使用者介面除了前幾篇
[Android] L - 新舊差異概論 (Overview)
[Android] L - 重大改變 (Important Behavior Changes) 之一
[Android] L - 重大改變 (Important Behavior Changes) 之二
一直提到的 Material Design 之外,還有:

鎖屏時的通知

使用者可以從設定裡面選擇,是否要讓較敏感的資訊通知顯示在鎖屏上,而當會顯示在鎖屏上時,開發者可以透過 android.app.Notification.Builder.setVisibility() 控制每個通知的級別,決定要顯示的內容。
級別分別有:

VISIBILITY_PRIVATE:顯示最基本的資訊,像是通知的圖示,但不會有通知的完整內容。
VISIBILITY_PUBLIC:顯示通知的完整內容。
VISIBILITY_SECRET:什麼都不顯示,連通知的圖示也不顯示。

當設定為 VISIBILITY_PRIVATE 時,可以提供一個增刪過後的通知內容版本,作為要顯示的內容。舉例來說:一個簡訊的應用程式可能只顯示「您有三封新訊息」,隱藏實際訊息內容和寄訊息的人。要顯示這樣替代的通知訊息,首先,使用 Notification.Builder 新建一個替代的通知訊息,然後透過 Notification.Builder.setPublicVersion() 設到原本的通知物件裡,一切就大功告成囉。

通知的附加資料

Android L 使用通知的附加資料去智慧排序所有應用程式的通知。開發者可以在新建通知時透過 android.app.Notification.Builder 內的一些函式設定附加資料,舉例來說:

setCategory():設定通知的類別,像是「來電」、「即時訊息」、「鬧鈴」等。系統會在不同模式時依據不同的類別坐相對應的處理。
setPriority():設定通知的優先順序。若把優先順序設成 PRIORITY_MAX 或 PRIORITY_HIGH,且也有設定音效或者震動,通知會以一個小浮動視窗顯示。
addPerson():設定通知相關的人。這個資料讓系統可以將通知依相關的人做歸類或者排序。

「最近使用的應用程式列表」

在之前的版本,「最近使用的應用程式列表」僅能顯示應用程式最近使用的單一個 Task,現在則能顯示應用程式的多個 Task。這項功能讓使用者可以在「最近使用的應用程式列表」內,不變更原有的使用者體驗下,迅速地切換同一個應用程式中的不同頁面或者文件。這樣的例子有:瀏覽器的不同分頁、文件處理應用程式的不同文件、遊戲中的設定與主遊戲畫面、即時訊息的不同聊天視窗等。開發者可以透過 android.app.ActivityManager.AppTask 來設定、管理應用程式中的 Tasks。

要讓系統把新開的 Activity 視為新的 Task,開發者可以:
1. 透過將 Intent 設為 android.content.Intent.FLAG_ACTIVITY_NEW_DOCUMENT 來開啟 Activity。
2. 在 AndroidManifest.xml 中,將 的 documentLaunchMode 屬性設為 intoExisting 或者 always。

<activity documentLaunchMode="intoExisting"></activity>
<activity documentLaunchMode="always"></activity>

要讓 Task 在裡面的所有 Activities 皆結束時被從「最近使用的應用程式列表」移除,開發者可以:
1. 當開啟 Task 中的第一個 Activity時,將 Intent 設為 android.content.Intent.FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS。
2. 在 AndroidManifest.xml 中,將 的 autoRemoveFromRecents 屬性設為 true。

<activity autoRemoveFromRecents="true"></activity>

為了避免「最近使用的應用程式列表」爆炸,開發者可以透過設定 AndroidManifest.xml 中 <activity> 的屬性 android:maxRecent 來限制顯示的 Tasks 數量,目前上限為 100 個 Tasks。

WebView 的更新

在 Android L 中,WebView 版本更新至 Chromium M36,除了解決一些問題外,安全性和穩定性雙雙提升;預設的 user-agent string 也變更為加上版本號碼 36.0.0.0 (Chrome/36.0.0.0 Mobile)。此外,這次的版本更加上對 WebAudio、WebGL 和 WebRTC 標準的支援。

p.s. 使用者或者開發者可以根據 user-agent string 瞭解使用的瀏覽器、版本和作業系統。詳細請參考 User Agent Strings


沒有留言:

張貼留言