关于Wear OS应用开发–Tiles我所了解的一些内容(附Demo)

本文介绍了如何在Wear OS上利用非官方API开发自定义Tiles,讨论了Tiles作为快捷UI的重要性,并提供了一个简单的Tiles Demo,帮助开发者理解关键代码和流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

浅谈Wear OS应用开发–Tiles

Google 在Wear OS 2.0加入了一个新功能:Tiles(在中国版WearOS称作"卡片")。
多数用户使用手表平均抬腕时长不会超过5秒,所以手表上的信息必须容易查到,交互简单,且操作性强,这也就是Tiles诞生的原因。
Tiles是一种类似于小部件的UI,可以让用户以更便捷的方式获得需要的信息并完成操作。Tiles的入口是向左划动,并可多次划动快速进入某项功能。可通过手机APP端操控添加、删减、重新排序。Tiles
但不幸的是,Google在上线Tiles功能的同时并没有发布API,这意味着Tiles仅限于Google和部分合作伙伴使用。

好在一位叫Sterling Udell的大神从Wear OS应用程序中提取了相关的代码,并推断出了API,我们可以通过此API创建出属于我们自己的Tiles。(这个API无疑是非官方的,但它能够使用Wear官方的系统级hooks创建和更新手表上的Tiles)

具体有关Tiles的详细说明、使用教程及非官方API可查阅https://bitbucket.org/StringMon/unofficialtileapi/src/main/,

我写了个简单的Tiles Demo供大家参考

效果图:
卡片
卡片
关于一些关键代码的说明:

所有Tile特有的方法都传递了一个int类型参数,即Tile ID。这些ID可能会在添加Tile时按顺序分配,且在Tile的整个生命周期中保持不变,不会被重新使用。

public void onTileUpdate(int TileId)
在首次添加或启动Tile,以ID作为其参数时,似乎会调用此方法一次。此后有时则会以大的负数(不是你的Tiles ID)作为参数来调用它,但是这些参数并不一致,目前含义不明。

public void onTileFocus(int TileId)
在用户即将滑动到Tile上调用(在Tile出现之前)

public void onTileBlur(int TileId)
在用户离开你的Tile时调用

TileData.Builder
这是一个基本的构建器类,可将RemoteViews通过Bundle发送。

关键代码:

MyTileProviderService

package com.yearky.tile;

import android.app.*;
import android.content.*;
import android.util.*;
import android.view.*;
import android.widget.*;
import com.google.android.clockwork.tiles.*;

import static com.yearky.tile.WearableActivity.TAG;

public class MyTileProviderService extends TileProviderService
{
   
	
	private int id = -5;
	
    public MyTileProviderService()
	{
   
    }


   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值