阻止iOS / Android设备锁定屏幕/节能模式

时间:2013-05-06 13:23:37

标签: android ios google-chrome mobile safari

我有两台设备,

  1. (A)通过Native App进行控制
  2. (B)用作浏览器/ Websockets的显示器(最好在平板电脑/ iPad上)
  3. 你有没有人听说我可以阻止设备B进入节能模式,而我需要它作为显示器?

    我的意思是,我可以使用Websocket连接引起某些事情,比如刷新吗?

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

    编辑:我刚检查过,当您在浏览器中观看YouTube视频时,手机也无法进入睡眠状态。因此,只要视频正在播放,它就必须告诉浏览器不要睡着或者什么。

4 个答案:

答案 0 :(得分:2)

[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

答案 1 :(得分:1)

这很困难,因为超时设置在系统级别。当您拨打电话时

[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

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

也许你可以尝试一个<视频>播放1像素1秒视频的标签,然后用javascript继续播放视频。这适用于某些设备,但不是全部。例如,即使我正在观看Youtube,我的Nexus4也会超时(我会责怪我的自定义rom)。如果您在不同的设备上使用它,您还必须确保为不同的设备和浏览器提供正确的视频格式,这是维基百科的图表:http://en.wikipedia.org/wiki/HTML5_video#Browser_support

答案 2 :(得分:0)

以下是针对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

答案 3 :(得分:0)

如果正如您所说,播放视频可以满足您的需求,那么如何在设备B正在显示的页面中嵌入一个可以无限重复的小空白和静音视频呢?