Skip to content
renyuneyun edited this page May 21, 2018 · 13 revisions

最好知道

狀況(Condition), 事件(Event), 行爲(Operation), 情境(Scenario), 行爲集(Profile), 事件腳本(Script)

本節簡單解釋這些在Easer中使用的術語/辭彙。

  • 狀況(Condition)
    • 一種長期狀態
    • 包含進入退出事件
  • 事件(Event)
    • 一個短暫的“事件”(語言意義)
  • 行爲(Operation)
    • 一個可被執行的操作(可被Easer執行)
  • 情境(Scenario)
    • “預定義事件”的歷史遺留名稱
  • 行爲集(Profile)
    • 一組行爲的集合
  • 事件腳本(Script)
    • 用戶定義的狀態-行爲序列(參考戲劇、電影等之中“腳本”一詞的意義)
    • 事件腳本使用樹狀結構來組織
      • 事件腳本也指代事件腳本樹中的一個節點

事件(Event)到事件(Event)+狀況(Condition)

#86的內容,Easer當前處於轉變過程中。出於兼容的考慮,所有原有事件(Event)均保留。

然而,你應當始終優先選擇狀況(Condition)而非事件(Event);合適的情況下亦可選用狀況(Condition)相應的狀況事件(ConditionEvent)。 唯一的例外是你的確需要使用短效的事件,而非長效的狀況時。

不可靠功能

由於沒有相應Android API,部分功能使用了一些較爲不可靠的方法(反射)來達成它們——然而在某些設備上可能無法正常工作;啓用root特性一般而言有助於改善該狀況。這裏列出它們:

功能 類名 非root可用性 已適配root特性?
打開/關閉數據網絡/流量 CellularOperationPlugin 或許
打開/關閉熱點(無線AP) HotspotOperationPlugin 或許 暫未
執行命令 CommandOperationPlugin 很可能不行(貌似必須有root權限纔能在Android上執行命令)

非常歡迎各位報告在各個設備及ROM上的兼容性狀況(無論是可用還是不可用)。

功能解釋

Easer的界面尚需極大改進;程序的一些功能/表現或許和你所想並不一樣。這裏列出它們以避免不便。

  • Easer會使用相關的系統權限來檢查事件或改變設置。雖然有動態權限檢查部分,但還是請不要在授予權限後撤銷(不然相應功能無法正常發揮作用)。
  • 爲了調整屏幕亮度,Easer需要臨時啓動一個透明的Activity。該Activity僅會存在極短的時間,並且會自己關閉。請留意該行爲,以防影響當前正在進行的工作。使用該方法是因爲沒有“官方”的方法可以從後臺服務中調整屏幕亮度。
  • 時間(TimeEventPlugin)使用Android系統級的提醒機制(AlarmManager)。官方文檔說(對於Android 4.4以上設備)該機制產生的提醒並不精確(其目的是最小化喚醒和電池用量)。我觀察到的最大偏移/誤差是3分鐘。
  • 日期(DateEventPlugin)和其相似,也使用AlarmManager,所以也可能會不精確(不過這個危害較小,畢竟3分鐘和一整天相比太小了)。
  • 早於晚於(這兩個EventType)均包含所設置的事件(時間日期等)。(不確定改爲“不包含”有沒有意義。)
  • 多數事件不會重複觸發,即當一個事件已經處於“滿足”狀態,在它變爲“不滿足”前它都不會再次被觸發。也就是說,我們不必擔心創建了“3:00pm以後”這麼個事件後,它不斷重複觸發(重複載入其對應profile)。那些被設爲會重複觸發的事件是由於其本質更符合重複觸發,所以一般而言不用擔心,只要跟着直覺使用即可。

權限

該頁面爲完整列表。