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

如何从Amazon Fire Stick和Android TV获取真实屏幕分辨率?

获取Amazon Fire Stick/Android TV真实分辨率的方法

原因分析

你拿到的960×540是逻辑像素,而非物理像素。Android TV/Fire Stick这类设备会通过设备像素比(DPR)对WEB视图进行缩放,window.screen返回的是经过缩放后的逻辑尺寸。

解决方案

1. 通过设备像素比计算真实分辨率

利用window.devicePixelRatio获取系统缩放比例,再和逻辑像素相乘得到物理分辨率:

const dpr = window.devicePixelRatio;
this.screenWidth = window.screen.width * dpr;
this.screenHeight = window.screen.height * dpr;

该方法能覆盖绝大多数标准场景,但需注意部分设备可能存在自定义系统缩放设置。

2. 使用Capacitor Device插件直接获取

Capacitor的@capacitor/device插件可从系统层面直接读取物理屏幕参数,绕过WEB视图缩放限制:

  • 先安装插件:
npm install @capacitor/device
npx cap sync
  • 代码中调用:
import { Device } from '@capacitor/device';

async getRealScreenSize() {
  const deviceInfo = await Device.getInfo();
  this.screenWidth = deviceInfo.screenWidth;
  this.screenHeight = deviceInfo.screenHeight;
}

这个方法适配Fire Stick和Android TV的可靠性更高。

3. 禁用WEB视图缩放(可选)

如果你的应用仅针对固定分辨率的电视设备开发,可在capacitor.config.ts中配置禁用WEB视图缩放,让逻辑像素与物理像素保持一致:

import { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.your.app',
  appName: 'YourApp',
  webDir: 'dist',
  android: {
    webViewSettings: {
      setSupportZoom: false,
      builtInZoomControls: false,
      displayZoomControls: false
    }
  }
};

export default config;

注意:该方法可能导致低分辨率设备显示异常,仅建议在特定场景下使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 11:40:55