You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ionic/Capacitor:自动获取同局域网索尼BRAVIA电视IP方法

同WIFI下索尼BRAVIA电视IP自动获取的Ionic/Capacitor实现方案

完全可以通过Ionic/Capacitor实现这个需求,以下是两种可靠的实现思路:

1. 基于mDNS服务发现(推荐)

索尼BRAVIA电视在局域网内会通过mDNS(多播DNS)广播自身服务,你可以借助Capacitor社区插件扫描并识别这些服务:

  • 安装@capacitor-community/mdns插件,它封装了原生平台的mDNS扫描能力
  • 扫描时指定索尼电视的专属服务类型_sony-ircc._tcp.local.,或者通过设备名称包含“BRAVIA”来过滤结果
  • 从扫描到的服务信息中直接提取电视的IP地址

简单代码示例:

import { MDNS } from '@capacitor-community/mdns';

async function findBraviaTVs() {
  try {
    const scanResult = await MDNS.search({
      serviceType: '_sony-ircc._tcp.local.'
    });
    // 筛选出BRAVIA设备
    const braviaTVs = scanResult.services.filter(service => 
      service.name.includes('BRAVIA')
    );
    // 提取所有匹配的IP地址
    const tvIpList = braviaTVs.map(tv => tv.addresses[0]);
    console.log('找到的BRAVIA电视IP:', tvIpList);
  } catch (err) {
    console.error('mDNS扫描失败:', err);
  }
}

2. 局域网IP段主动扫描

如果mDNS方案因设备设置或系统限制无法使用,可以采用IP段扫描的方式:

  • 用@capacitor/network插件获取当前手机的局域网IP,计算出所在网段(比如当前IP是192.168.3.12,网段就是192.168.3.0/24)
  • 遍历网段内的所有IP,尝试访问索尼电视的控制端口(默认80或52323),通过返回的设备标识(比如响应头或特定接口返回的信息)判断是否为BRAVIA电视
  • 注意:这种方式效率略低,需要处理超时和并发请求的问题

平台权限配置

移动端需要配置对应权限才能正常扫描:

  • Android:在AndroidManifest.xml中添加ACCESS_WIFI_STATE、ACCESS_NETWORK_STATE权限,Android 10及以上还需ACCESS_FINE_LOCATION权限
  • iOS:在Info.plist中添加NSLocalNetworkUsageDescription(说明访问本地网络的用途),若使用mDNS还需开启Bonjour Services权限

内容的提问来源于stack exchange,提问作者Brixi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 00:41:59