关于Wear OS启用最近应用功能及自定义开发的技术咨询
针对Ticwatch 3 Pro GPS(Wear OS 2.38)的问题解答
1. 系统自带最近应用功能的启用方式
Wear OS 2.38自带最近应用功能,操作逻辑如下:
- 在手表主屏幕(启动器界面),从屏幕底部向上滑动并短暂停留,即可调出最近打开的应用列表,点击列表项就能快速切换回对应应用。
- 若手势无效,检查系统设置路径:「设置」→「显示」→「手势」,确认「最近应用」手势已开启。
另外,Google Keep在屏幕变暗后自动关闭的问题,多是后台进程被系统回收导致,可通过以下操作缓解:
- 进入「设置」→「应用和通知」→「应用信息」→找到「Google Keep」→「电池」,将电池优化设置为「不优化」,降低系统对Keep后台进程的限制。
2. 自定义按键唤起最近应用的开发方案
如果自带功能无法满足需求,可开发一款轻量应用实现该功能,核心步骤如下:
权限申请
在AndroidManifest.xml中添加必要权限:
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" tools:ignore="ProtectedPermissions" />
安装应用后,需引导用户在手表「设置」→「安全」→「权限管理器」→「特殊权限」→「使用情况访问权限」中,为该应用授权。
获取最近应用列表
使用UsageStatsManager获取近期应用使用记录,示例Kotlin代码:
val usageStatsManager = getSystemService(Context.USAGE_STATS_SERVICE) as UsageStatsManager val endTime = System.currentTimeMillis() val startTime = endTime - 1000 * 60 * 60 // 拉取过去1小时的应用记录 val queryFlags = UsageStatsManager.INCLUDE_PACKAGES or UsageStatsManager.INCLUDE_APP_ACTIVITIES val usageStatsList = usageStatsManager.queryUsageStats(queryFlags, startTime, endTime) // 按最后使用时间排序,过滤系统应用与重复项 val sortedRecentApps = usageStatsList.sortedByDescending { it.lastTimeUsed } .distinctBy { it.packageName } .filter { !it.packageName.startsWith("com.google.android") && !it.packageName.startsWith("android") }
界面与按键触发逻辑
- 用RecyclerView做一个简单列表展示过滤后的最近应用,点击列表项时,通过
PackageManager获取应用启动Intent并启动对应应用。 - 将该应用设置为Ticwatch自定义按键的启动目标:进入手表「设置」→「按键」→选择自定义按键→设置为启动你开发的这款应用。按下自定义按键即可直接唤起最近应用列表。
注意事项
- Wear OS 2.x对后台应用限制严格,无需做后台监听,直接通过按键触发应用启动即可,启动后再加载最近应用数据。
- 测试时可根据需求调整时间范围与过滤规则,避免列表出现过多系统应用。
内容的提问来源于stack exchange,提问作者Prestizni_Wifi_Kabel
相关产品推荐
相关产品推荐

