2

我在我的应用程序中使用 Mark Wei 令人难以置信的库 StandOut:http: //pingpongboss.github.io/StandOut/

我正在做的与TrueCaller App非常相似

在来电时显示我自己的视图。这通常效果很好。

我的问题是什么?

在一个非常具体的情况下:

  • 仅在 Android Marshmallow (6) 上
  • 当钥匙保护锁设置为 ON 时

然后应用程序的 StandOut 窗口被发送回来电窗口的后面,除了闪烁几分之一秒外不显示。

我尝试了什么?

一起使用这两个标志:

  • FLAG_DISMISS_KEYGUARD
  • FLAG_SHOW_WHEN_LOCKED

另外(和单独)我尝试了这种不推荐使用的方式:

KeyguardManager.KeyguardLock mLock;
KeyguardManager mKeyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE);
mLock = mKeyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
mLock.disableKeyguard();

当这也失败时,我尝试授予我的应用程序管理员权限(我不会添加整个代码来执行它,因为它很长但我做得正确)然后尝试了这个:

devicePolicyManager.setKeyguardDisabled(deviceAdmin,true);

注意:我想再次强调,我知道这是可能的,因为TrueCaller 应用程序做得很好,并且每次通话都不会失败。只需要帮助才能找到正确的方法。

提前致谢!

4

2 回答 2

2

我有三个建议供您尝试,(不确定它们是否会起作用),但它们值得一试。

  1. 尝试添加这些标志:

    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    
  2. 尝试在触发 StandOut 窗口活动之前添加 2 秒的延迟,以确保它在来电系统屏幕之后出现(稍后,如果这解决了问题,请尽可能减少延迟)。

  3. 也在这里找到了这个答案,不确定您是否可以访问窗口属性,但看到了这个解决方案:

    “我们也遇到了类似的问题,即覆盖没有显示在带有 pin 锁的设备上。对我们有用的解决方案如下:

    mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
        mParams = new LayoutParams(
            LayoutParams.MATCH_PARENT,
            LayoutParams.WRAP_CONTENT,
            LayoutParams.TYPE_SYSTEM_ERROR,
            LayoutParams.FLAG_NOT_FOCUSABLE,
            PixelFormat.TRANSLUCENT);
    

    它是

    LayoutParams.TYPE_SYSTEM_ERROR
    这造成了不同。”

    类似的问题:在Android本机来电屏幕上弹出窗口,如真正的来电者Android应用程序

希望这里的东西对你有帮助,如果解决了请更新。

更新:这解决了这个问题:(添加这个):

LayoutParams.TYPE_SYSTEM_ERROR

只需确保在布局膨胀之前添加它,否则它不会做任何事情。

于 2016-06-16T07:01:29.863 回答
1

,我有同样的问题......我正在尝试制作一个在来电和去电时弹出活动的应用......

我的应用程序运行良好,除了在 android 6 和“KEYGUARD”处于活动状态时。

我尝试了一些可以帮助您找到解决方案的方法

我尝试使用带有(TYPE_SYSTEM_ERROR)的窗口管理器和膨胀布局来显示来电屏幕,它成功工作并在系统调用屏幕android 6上显示布局,但我发现了另一个问题..

此解决方案仅在键盘未通过图案锁或通行锁保护时正常工作...如果键盘锁可通过滑动解锁并且没有任何锁定图案,则该解决方案可以正常工作,但如果键盘锁有任何型号锁定类型,自定义活动屏幕将再次显示在系统调用屏幕上,但活动的代码(如 clicklistener 或按钮代码)根本不起作用......

顺便说一句,我发现了一些应用程序,它正是你和我试图让你可以在这里找到的: 来电屏幕 OS9 ID 主题

我希望这可以帮助你。

如果您找到解决方案,请更新

对不起我糟糕的英语

于 2016-06-26T22:16:27.673 回答