首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android Wearable.API已被弃用。我应该用什么来代替呢?

Android Wearable.API 已被弃用,现在推荐使用 Google Play 服务中的 Wear OS API

  1. 添加依赖项

在您的 app 的 build.gradle 文件中添加以下依赖项:

代码语言:javascript
复制
dependencies {
    implementation 'com.google.android.gms:play-services-wearable:17.1.0'
}
  1. 使用 Wearable API

在您的代码中,您可以使用 Wearable API。以下是一些基本的用法示例:

  • 获取 WearManager:
代码语言:javascript
复制
import com.google.android.gms.wearable.Wearable;

Wearable wear = Wearable.get(context);
  • 获取连接的节点:
代码语言:javascript
复制
Node connectedNode = wear.getConnectedNodes().await().get(0);
  • 发送消息:
代码语言:javascript
复制
import com.google.android.gms.wearable.MessageApi;
import com.google.android.gms.wearable.Wearable;

Wearable.MessageApi.sendMessage(
        googleApiClient, node.getId(), path, message.getBytes()).setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
            @Override
            public void onResult(@NonNull MessageApi.SendMessageResult sendMessageResult) {
                if (sendMessageResult.getStatus().isSuccess()) {
                    Log.d(TAG, "Message sent successfully");
                } else {
                    Log.d(TAG, "Failed to send Message");
                }
            }
        });
  • 接收消息:
代码语言:javascript
复制
import com.google.android.gms.wearable.MessageApi;
import com.google.android.gms.wearable.WearableListenerService;

public class MyWearableListenerService extends WearableListenerService {

    @Override
    public void onMessageReceived(MessageEvent messageEvent) {
        if (messageEvent.getPath().equals("/my-path")) {
            String message = new String(messageEvent.getData(), StandardCharsets.UTF_8);
            // 处理接收到的消息
        }
    }
}
  • 在 AndroidManifest.xml 文件中声明服务:
代码语言:javascript
复制
<service
    android:name=".MyWearableListenerService"
    android:exported="true">
    <intent-filter>
        <action android:name="com.google.android.gms.wearable.MESSAGE_RECEIVED" />
    </intent-filter>
</service>
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android从零单排系列十六】《Android视图控件——ProgressDialog》

    前言 小伙伴们,在上文中我们介绍了Android视图组件AlertDialog,本文我们继续盘点,介绍一下视图控件的ProgressDialog。...特别注意:ProgressDialog在Android API级别26中已被废弃;取而代之的是ProgressBar和自定义布局实现进度提示和等待效果 一 ProgressDialog基本介绍 ProgressDialog...是是Android平台上的一个对话框,用于显示进度信息或操作的等待状态。...二 ProgressDialog使用方法 ProgressDialog已在Android API级别26被,推荐使用ProgressBar和自定义布局代替。...四 总结 ProgressDialog已被废弃,但是以前很多老的项目有的还有这个组件,有些项目的bug也和这个有关,所以也整理了一下,建议如果搞不定,直接换ProgressBar和自定义布局。

    94720

    XPage系列|是时候抛弃ButterKnife了

    前段时间, 在观望了许久之后, 终于更新了Android Studio的最新版本(北极狐), 发现项目中使用ButterKnife注解id的代码出现了警告,警告信息如下: Resource IDs will...而且在ButterKnife的官方文档上也看到了ButterKnife被标注的信息: 因为当初设计XPage是为了能够更方便的使用Fragment, 所以就默认集成了ButterKnife....升级后有什么变化 这次升级主要包含了两个部分: 使用gson代替fastjson 和 去除butterknife依赖, 全方面向Google看齐。...使用gson代替fastjson 为什么使用gson代替fastjson? 主要是出于以下两点考虑: fastjson之前就经常爆出了好几次比较严重的安全漏洞, 安全性方面存在缺陷....去除butterknife依赖 去除butterknife依赖, 使用ViewBinding代替是趋势所向. 那么使用ViewBinding代替有哪些好处?

    64420

    Better Kotlin

    可能大家早已从纯 Java 开发 Android 转为了混合使用开发甚至是 Kotlin 开发,那你转向 Kotlin 的初衷又是什么?...1 避免使用自带的插件转换代码 想必 IDE 里面的插件 "Covert Java File To Kotlin File" 早已被大家熟知,要是不知道的小伙伴,赶紧写个 Java 文件,尝试点击 Android...4 @JvmStatic、@JvmFiled 和 object 的故事 我们在 Kotlin 中发现了 object 这个东西,以前就一直对这个东西很好奇,不知道这是个什么玩意儿。...但,说好的 object 代替的是 Java 的匿名内部类?那这里为啥是静态内部类。 这里一定要注意,如果你只是这样声明了一个object,Kotlin认为你是需要一个静态内部类。...LazyThreadSafetyMode.NONE:没有双重锁检查,不应该用在多线程下。

    1.3K20

    使用 FCM 通知您的用户

    FCM 实现远程通知 我们推荐使用 Firebase 云消息 (FCM) 发送远程通知到 Android 设备。FCM 是一种免费的跨平台消息传递解决方案,每日可靠传递千亿条消息。...如果您仍使用已被的 Google 云消息 (GCM) 或 C2DM 库,是时候升级到 FCM 了! 有两种类型的 FCM 消息可选: 通知消息,简化了通知处理且默认高优先级。...这种情况妥善处理。 简言之, FCM 消息有效负载中的数据发布通知,并保持首先更新应用内容。如果需要更多数据,则用 WorkManager 或 JobScheduler API 调度任务。...但使用这个窗口启动后台服务从而进行网络连接,服务可能被系统终止,因为这个白名单窗口是为用于发布通知而设计的。...总而言之,避免使用后台服务,而是 WorkManager 或 JobScheduler API 执行后台操作。

    3.5K30

    Android P 适配指南

    adnrodi P 设备上 由于彻底移除了 Crypto, 因此无论 target 是何值 都会抛出异常 NoSuchProviderException 许多算法的 Bouncy Castle 版本被...使用证书的主机名验证 在 RFC 2818 中,回退到 CN 已被。因此,Android 不再回退到使用 CN。 要验证主机名,服务器必须出示具有匹配 SAN 的证书。...不包含与主机名匹配的 SAN 的证书不再被信任 1.4 其他限制 1.4.1 Apache HTTP 客户端影响采用非标准 ClassLoader 的应用 其实,自 Android 6 发布,就移除了对...,但是有一个困惑的地方,就是 同样 是运行在 android P 设备上 和 运行在 低版本上(>M) DexPathList 值确不一样: android P : PathClassLoader//...2.2 隐私权变更 构建序列号Android 9 中,Build.SERIAL 始终设置为 "UNKNOWN" 以保护用户的隐私。

    3.6K20

    【方向盘】Spring Boot 2.5.0正式发布,环境变量可指定前缀的功能很赞

    相距约半年,继2.4.0版本的重大更新之后,此版本能给我们带来哪些期待?...*已被(标记为过时,但并未删除仍可以使用哈): # 使用spring.sql.init.username代替 spring.datasource.schema-username=YourBatman...Spring Boot通过spring-boot-starter-validation启动器管理相关依赖,之前的org.glassfish:jakrta.el,此版本之后改为org.apache.tomcat.embed.tomcat-embed-el...相关代码在这,默认情况下该钩子是会被注册的: 那钩子程序到底做了什么?...其实就是资源回收嘛(比如close()),以Logback为例: ✌删除2.3已被标记为过期的代码 这是Spring Boot一贯的规则/规律:标记为@Deprecated的API会在隔一个版本后删除代码

    99610

    objectable_java throwable

    这有很多原因,不会提及; others已经做到了。它也是Java architects自己的立场。 因此,的问题是:为什么还没有被?...如果核心Java团队已经确定它已被破坏,那么他们也必须考虑。他们这样做的原因是什么(在Java 8中它是still not deprecated)?...(或者实际上,为什么not1111428949已经过去,对于任何X而言)是因为对它们的并没有太多关注。 最近的大部分内容都已,因为有一个特定的计划要删除它们。...更长的答案将涉及讨论进一步的问题,例如人们可能期望在这些API上发生的事情,如果平台被会产生什么样的成本或收益,以及在API被用时与开发人员沟通的内容。...在最近的JavaOne演讲Debt and Deprecation中探讨了这个主题。 (在该链接上可用的幻灯片; video here。)事实证明,JDK本身在使用方面并不十分一致。

    42740

    应用系统数据删除与恢复

    假删除的实现 数据库表增加deleted字段,默认值为0表示数据未被删除,删除操作时,将deleted字段更新为1表示数据已被删除,查询数据时使用deleted=0过滤。 1.2....数据恢复功能的授权 数据被删除后,恢复功能“谁删除的数据谁有权恢复”,没必要交给管理员(不少系统重要操作都交给管理员处理,例如用户账户锁定等),管理员可以授权处理所有的数据。...全局唯一性约束处理 例如常见的网站用户注册,当输入的用户名已存在时,无论该用户是否已该账户,网站都不会删除该账户,并禁止新用户使用该用户名,以备原用户再次启用该账户,或其他需求。 3.2....、“该用户编码已存在于删除区,是否要恢复?”...状态控制 使用状态变更代替删除操作。例如人员状态有“在用”、“停用”等状态,数据不允许删除,也不提供假删除的功能,仅将用户状态切换即可。

    1.6K20

    常见的消息中间件有哪些?你们是怎么进行技术选型的?

    那都有哪些中间件可供选择。...其实现在主流的消息中间件就4种:kafka、ActiveMQ、RocketMQ、RabbitMQ 下面我们来看一下,他们之间有什么区别,他们分别应该用什么场景 ActiveMQ 我们先看ActiveMQ...综合以上,其实这个产品基本可以用掉了,我们完全可以使用RabbitMQ代替它。...RocketMQ 接下来我们讨论一下比较喜欢的MQ-RocketMQ,它是阿里开源的消息中间件,久经沙场,非常靠谱。 它支持高吞吐量,能达到10万级,能承受互联网项目高并发的挑战。...目前来看,它没有什么特别的缺点,可以支持高并发下的技术挑战,可以基于它实现分布式事务,大型互联网公司和中小型公司都可以选择使用它来作为消息中间件使用,如果做技术选型,首选的中间件就是它。

    1.4K20

    解决问题Using AVStream.codec to pass codec parameters to muxers is deprecated, use A

    解决问题:使用AVStream.codec传递编解码器参数给复用器已被,请使用AVStream.codecpar代替在使用FFmpeg进行音视频处理时,我们有时会在日志中看到以下警告信息:Using...本篇博客将详细介绍什么是AVStream.codec,为什么它被,以及如何解决这个问题。什么是AVStream.codec?...为什么AVStream.codec被?FFmpeg团队决定AVStream.codec的原因是为了提高代码的清晰度和可维护性。...这篇博客介绍了AVStream.codec的概念,解释了为什么它被,以及如何解决这个问题。...下面是一个实际的示例代码,展示了如何使用AVStream.codecpar代替AVStream.codec解决问题。

    39510

    Android 设备唯一标识(适配Android版本)

    下面先配置这个项目,在上面说过IMEI在Android9.0时就被用了,说是实际上是禁止第三方应用获取IMEI,这么一说,那它在Android9.0以下就是可以的,那么在Android的1.0...看到图中画横线这个方法,你把鼠标放上去,它会说已经过时了,也就是的意思,因为在build.gradle中当前的版本是Android11.0,而我之前说过,在Android9.0时就已经用了,使用过时的方法会很容易出问题...不过已经采购了两台低版本的Android手机,分别是5.0和6.0的,到时候还是要用真机来试试。 下面Android8.0进行运行 6....看到这里你就会问了,那现在Android9.0之后要怎么获取设备的唯一标识? 8. 解决方案   可以通过硬件标识制作唯一设备id。...通过一个工具类获取,这个工具类也是通过视频学到的,挺牛逼的。 新建一个DeviceIdUtil 类。

    4.3K41

    最小样本量计算

    大家先想想为什么叫最小样本量,而不是最大或者直接叫样本量计算?...既然是抽样样本的平均身高代替整体的平均身高,我们就需要考虑一个问题,就是抽出来的样本能不能代表整体。...假设全国有1000万名中学生,你只抽了100个同学,想用这100位同学的平均身高代替这1000万同学的平均身高,很明显是不太合理的。那我们应该最少抽取多少样本才能够代表整体?...在这个决策的过程中容易犯两种错误:第一类错误(I型错误)叫做真错误,通俗一点就是漏诊,就是本来是生病了(假设是正确的),但是你没有检测出来,所以给拒绝掉了;第二类错误(II型错误)是取伪错误,通俗一点就是误诊...最终判断 H0本正确 H0本错误 拒绝H0假设 犯I型错误 正确 接受H0假设 正确 犯II错误 下图中左边的分布图为H0对的分布,右边的分布图为H1对的分布,α为一型错误值,β为二型错误值。

    5.1K21

    Java中用Deque接口代替Stack接口完成栈功能

    Deque接口 引言  之前在有需要用到栈功能的时候,都是通过使用Stack接口完成的,也就是:  Stack stack = new Stack () ​ 但今天突然发现,Java Doc里建议Deque...替代Stack接口完成栈的功能,于是稍微研究了一下。 ...原因  那么为什么要这么做?首先,我们可以发现deque的是继承自队列,而栈是继承自向量,这就比较奇怪了。   矢量是由数组实现的集合类,他包含了大量集合处理的方法。...而Stack之所以继承Vector,是为了补充Vector中的方法,实现进栈(push),出栈(pop)等操作。...总结  决定以后在Java中要用到栈的话,再也不用Stack了,暗透明,转向Deque!  转载来源:Java中用Deque接口代替Stack接口完成栈功能  作者:Hazza Cheng

    1.7K30
    领券