【问题标题】:Voip application in sleep states睡眠状态下的 Voip 应用程序
【发布时间】:2016-07-22 10:25:11
【问题描述】:

假设我们有 SIP 堆栈 Voip Android 应用程序,我们想要接收消息,并在睡眠模式下调用。

通过使用 ADB,我们将设备置于 IDLE 状态,并且没有任何来源可以接收来自信令的传入消息。闹钟和服务都不适合这项任务!因此,除了 GCM 之外,没有其他方法可以处理 IDLE 状态下的操作!还是我错了?

我浏览了有关电池优化和睡眠状态的所有文档。 Google 刚刚说了关于 Voip 应用的有趣的事情:

不,不能使用 GCM,因为技术依赖于另一个 消息服务或Doze和App Standby打破了核心功能 应用程序。

那么,这意味着什么?对于这个问题,我们不需要使用 GCM,但总是让设备处于活动状态 - 可以吗?我只想知道,在 VoiP 应用程序的睡眠状态下监听动作的正确方法是什么!

谢谢!

【问题讨论】:

    标签: android sip voip wakelock


    【解决方案1】:

    始终能够接收传入消息的解决方案如下:

    创建一个始终在后台运行的service,然后从那里运行您的 sipstack。

    锁定 WiFi,因为设备可以配置为在空闲时关闭 WiFi:

    private WifiLock wifiLock = null;
    ContentResolver ctntResolver = appcontext.getContentResolver();
    int set = android.provider.Settings.Global.WIFI_SLEEP_POLICY_NEVER;
    android.provider.Settings.System.putInt(ctntResolver, android.provider.Settings.Global.WIFI_SLEEP_POLICY, set);
    

    防止CPU离线:

    private WakeLock screenandcpuLockalways = null;
    private PowerManager powermanager = null;
    public void SetScreenAndCPULockAlways(boolean on)
    {               
        if (on)
        {
            if (screenandcpuLockalways != null && screenandcpuLockalways.isHeld())
            {
    
            }
            else
            {
                if (powermanager == null)
                {
                    powermanager = (PowerManager) appcontext.getSystemService(Context.POWER_SERVICE);
                }
    
                screenandcpuLockalways = powermanager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE,"MyApp");
                screenandcpuLockalways.acquire();
            }
        }
        else
        {
            if (screenandcpuLockalways != null && screenandcpuLockalways.isHeld())
            {               
                screenandcpuLockalways.release();
            }
        }               
    }
    

    【讨论】:

      猜你喜欢
      • 2018-12-23
      • 1970-01-01
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      • 2012-05-29
      • 2015-02-12
      • 1970-01-01
      相关资源
      最近更新 更多