【问题标题】:Block iOS/Android device from locking the screen/energysaving mode阻止iOS/Android设备锁屏/节能模式
【发布时间】:2013-05-06 13:23:36
【问题描述】:

我有两个设备的设置,

  1. (A) 通过 Native App 控制
  2. (B) 通过浏览器/Websockets 用作显示器(最好在平板电脑/iPad 上使用)

你们有没有听说过我可以阻止设备 B 进入节能模式,而我需要它作为显示器?

我的意思是,我可以通过 Websocket 连接引起一些事情吗,比如刷新?

这可能是一些特定于 chrome/safari 的解决方法,显然播放 html 视频的人必须有办法做到这一点。

编辑:我刚刚检查过,当您在浏览器中观看 youtube 视频时,手机也不会进入睡眠状态。因此,只要视频正在播放,它就必须告诉浏览器不要入睡之类的。

【问题讨论】:

标签: android ios google-chrome mobile safari


【解决方案1】:

[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

【讨论】:

  • 是的,这就是我们在原生应用程序中所做的。我问我可以在设备 B 上做什么。
【解决方案2】:

这很困难,因为超时是在系统级别设置的。当您拨打类似

的电话时
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

它本质上是从 iOS 中访问一个函数,对吧?使用网页,这是不可能的。但是,正如您所提到的,设备屏幕在播放 youtube 时通常不会超时。我认为一般来说,对于大多数设备来说,在播放视频时,屏幕不会超时。

也许您可以尝试放置一个播放 1pixel 1sec 视频的

【讨论】:

  • 谢谢,这至少是一个开始:)
【解决方案3】:

这是适用于 Android 的解决方案:

public class YourActivity extends Activity{
    private WakeLock wakeLock;

    @Override
    public void onCreate(Bundle icicle){
        String TAG = "your tag";
        PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
        wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, TAG);
    }

    @Override
    protected void onResume() {
        super.onResume();
        wakeLock.acquire();
    }

    @Override
    protected void onPause() {
         wakeLock.release();
         super.onPause();

    }
}

在您释放“wakeLock”之前,您的应用永远不会进入空闲模式。您还可以找到另外两个示例here

【讨论】:

  • 抱歉,我看不到如何在 Chrome 的网页中运行它。
【解决方案4】:

如果如你所说,播放视频是你想要的,那么嵌入一个小的空白和无声的视频,可以在设备 B 正在显示的页面中无限重复,怎么样?

【讨论】:

  • 就是这个想法,什么可以是一种标准的不引人注目的方法?一些指向要使用哪个 html 元素的指针?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-06
  • 1970-01-01
相关资源
最近更新 更多