在棉花糖或更高设备上的锁定屏幕中启动活动

时间:2018-01-16 12:54:11

标签: android sinch

我正在使用sinch服务创建一个调用应用程序。 对于来电,我需要以编程方式解锁锁屏。使用标志我解决了这个问题,但它不适用于Nougat。

我目前的活动代码:

  @Override
protected void onStart() {
    super.onStart();

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
            WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);    }

并在清单上:

<activity
    android:name="IncomingCallScreenActivity"
    android:noHistory="true"
    android:showOnLockScreen="true"
    android:screenOrientation="sensorPortrait">          
</activity>

更新

问题解决了。我在清单中编辑了:

<activity
android:name="IncomingCallScreenActivity">
</activity>    

3 个答案:

答案 0 :(得分:2)

我也使用过sinch服务。对于来电,我解决了这个问题。我希望你的问题可以通过尝试解决:

1.Replace

 <activity
   android:name="IncomingCallScreenActivity"
   android:noHistory="true"
   android:showOnLockScreen="true"
   android:screenOrientation="sensorPortrait">         
</activity>

通过

<activity 
   android:name="IncomingCallScreenActivity"> 
</activity>

2.在您的活动中编码onCreate():

 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
        WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
        WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
        WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);    }

答案 1 :(得分:0)

从Android O及以上版本开始,如果您的应用程序在后台,您的应用程序可以创建并运行后台服务几分钟,之后您的应用程序将进入空闲阶段,并且所有后台服务都将停止。 / p>

可行的解决方案是使用API​​21中引入的JobScheduler api来执行后台任务。

答案 2 :(得分:0)

我认为你应该在调用Activities onCreate方法之前使用getWindow()... block

@Override
protected void onCreate() {
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
            WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);    
super.onCreate();
}

您应该在清单文件中添加权限:

<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>