(Android)设备发现小记

以下内容纯属个人想法以及看过的一些相关信息,如有不足之处,还请及时指出,大家共同进步~~

为什么需要设备发现

随着接入互联网、物联网的设备越来越多,设备之间的通信也更加频繁和重要,而设备发现能更好的提升终端用户的体验。你可以想象以下的一些场景。

  • 当你需要打印手机或者电脑上的文档时,点击 打印 能自动弹出可用的打印机设备,然后就可以选择一个直接打印。而不需要再配置打印机IP相关信息,是不是很方便?

  • 目前电动汽车的智能座舱也很火,尤其多屏互动,比如你在手机上看到了一个有趣的视频,想分享给后排的朋友,此时你点击分享按钮,自动弹出车上的几个显示设备,你选择一个或多个进行分享。当然要想实现这种场景,还要结合投屏、镜像等功能,关于这块,会单独写一篇。

  • 华为开源出来的openharmony操作系统,主打分布式,其中也包含了设备发现功能。

总之如果想减少用户的操作,设备自动发现十分的重要。下面我们再看下有哪些相关的技术。


设备(服务)发现相关技术

  1. 蓝牙
    蓝牙的GAP(Generic Access Profile)就是保证不同的Bluetooth产品可以互相发现对方。

  2. zeroconf
    zeroconf是一个零配置网络协议,其不光实现服务发现,还包含 地址自动获取、域名解析(无需dns服务器)。苹果上的Bonjour、Linux上的avahi都属于zeroconf的实现。其中的服务发现主要是使用dns-sd协议。

  3. dns-sd
    github上有dns-sd相关的实现库,对于android开发者来说,NSD服务已经实现了dns-sd。可以直接使用NSD相关sdk进行开发。

  4. ssdp
    简单服务发现协议,是UPnP标准中的一个核心协议。

  5. coap
    这里要注意,原生的coap是不支持服务发现的,我所说的是openharmony中的libcoap,其基于原生的libcoap增加了发现功能。
    https://gitee.com/openharmony/third_party_libcoap

  6. Android上的设备发现
    推荐一个大牛对于jmDNS、Android NSD、Google Nearby 的分析
    https://andriydruk.com/post/mdnsresponder/

以及大牛自己的实现(很遗憾,由于战争的原因,好像不更新了,希望世界和平~~)
https://github.com/andriydruk/RxDNSSD

以上就是目前个人所看到的设备(服务)发现相关的一些信息,个人更倾向跨平台的,例如基于 dns-sd 协议。安卓的nsd和苹果的bonjour可以互发现。

重要的一点
设备(服务)发现不是独立存在的,往往需要结合其他的技术,例如网络连接、投屏技术。

希望大佬们能够分享你们看到的相关信息和想法~~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值