我有一個SW2應用程序,該應用程序擁有用戶選項以確定應用程序是否應使用低功耗模式(LPM)。哪些工作正常。問題是SW API只在第一次啓動時才調用我的應用程序的supportsLowPowerMode()註冊方法。這意味着如果用戶稍後更改了我的應用程序中的設置,它將在整個shebang重新啓動之後纔會生效。我已經嘗試了一些技巧(如殺死我的應用程序的進程)來強制重新加載,但目前爲止沒有任何工作。我的最後一招是告訴用戶他/她需要在生效之前重新啓動手機,但這很麻煩。有沒有更好的辦法?Sony SmartWatch 2:需要在運行時更改supportsLowPowerMode()
4
A
回答
1
解決方案不是嘗試在運行時將響應更改爲supportsLowPowerMode()
,而是啓動和停止擴展。
基本上,如果你的分機可以曾經支持LPM,那麼就應該在返回一個supportsLowPowerMode()
的true
值。如果擴展的LPM使用情況可能發生變化,您只需在onActiveLowPowerModeChange()
處理程序中執行不同的操作即可處理該擴展。具體來說,如果用戶選擇不使用LPM,你想有一個處理程序,看起來像這樣:
@Override
public void onActiveLowPowerModeChange(boolean lowPowerModeOn) {
super.onActiveLowPowerModeChange(lowPowerModeOn);
if (lowPowerModeOn) {
// User doesn't want to use LPM, so stop the app on the SW
stopRequest();
}
}
這有設備的背光關閉時自動關閉系統擴展的效果,它會回落到其默認的LPM表面。
編輯:我重新開放,因爲我發現上述技術的不可接受的副作用。如果您的應用程序返回false
至supportsLowPowerMode()
,則當手表進入睡眠狀態時,SW2會在後臺保持運行(但已暫停)。這意味着,當用戶「喚醒」SW2時,您的應用程序將立即重新出現在屏幕上。調用stopRequest()
(就像我上面的代碼示例中)會中斷這種行爲,要求用戶在喚醒SW2之後重新打開您的應用程序。我沒有找到任何解決辦法。需要的是pauseRequest()
,但API沒有。
1
據我所知在運行時沒有辦法改變它。讓我仔細檢查一下我的團隊,以防萬一有一種我不知道的方式。
相關問題
- 1. Sony Smartwatch 3 Google Play Services需要更新
- 2. Sony Smartwatch 2和推送通知
- 3. android sony smartwatch 2控制led不工作
- 4. Sony SmartWatch 2是否有NFC API?
- 5. Sony Smartwatch上的XML佈局
- 6. Sony Smartwatch小部件刷新
- 7. Sony Smartwatch示例 - 第二步
- 8. Sony smartwatch 2以編程方式檢查並更改背光狀態
- 9. Sony Smartwatch - 如何更改通知中的字體大小
- 10. Sony SmartWatch 2:在主機應用程序中獲取按鈕
- 11. Sony Smartwatch - 檢測額外的水龍頭?
- 12. SONY SmartWatch固件下載實用程序
- 13. 在運行時需要更改web.server.host屬性
- 14. 需要了解SONY lifelog API
- 15. DataGridViewComboBox更改不需要的行時
- 16. Sony SmartWatch - 如何獲取主機應用程序包名稱
- 17. Smartwatch Gear 2
- 18. 在Sony Smartwatch版本1上顯示視頻
- 19. 只在需要時才運行時
- 20. 需要更改日期格式角2
- 21. 在運行時更改dbContext
- 22. 在運行時更改string.xml
- 23. 更改在運行時
- 24. 在運行時更改LSApplicationQueriesSchemes
- 25. 在運行時更改fieldCls
- 26. 在運行時更改appconfig
- 27. 在運行時更改Winsock.LocalIP
- 28. 在運行時更改ListItem
- 29. 在運行時更改.dll
- 30. 如何在sony smartwatch被鎖定的情況下顯示屏幕
嗯。我以爲我昨天評論過這個,但現在已經消失了。針對你或團隊的後續問題:建議如何讓SW2重新載入supportsLowPowerMode()的返回值?有沒有什麼能夠重新啓動手機,這將觸發這種情況?謝謝! – String
確認一旦擴展設置爲支持低功耗模式,則無需在運行時更改它,而無需重新啓動擴展。您不必重新啓動手機,只需退出擴展程序並重新啓動即可。不幸的是,退出然後重新啓動是目前唯一的解決方案。 – mldeveloper
你是什麼意思的「退出延期」?我已經嘗試了所有從stopRequest()調用來在Android系統級別殺死我的進程,並且沒有任何可靠的工作。就好像這個值已經在主機端被緩存了,重啓之後的任何內容都不會刷新那個緩存。 – String