gpt4 book ai didi

android - 在 Android Locktask 模式下执行调用

转载 作者:行者123 更新时间:2023-11-30 00:45:57 26 4
gpt4 key购买 nike

TL;DR 如何在使用 Activity.startLockTask() 的同时调用电话?

我正在尝试在 Android 设备上设置受限环境,即通常称为“Kiosk 模式”的环境。

官方文档可以在这里找到: https://developer.android.com/work/cosu.html

执行此操作的官方方法建议使用 Activity.startLockTask .

在您想要从处于 startLockTask() 模式的 Activity 中启动其他应用程序之前,这一切正常。启动的任何 Activity 都不得在新任务堆栈上启动,否则系统会阻止启动 Intent,即没有 Intent.FLAG_ACTIVITY_NEW_TASK

有些应用程序可以直接启动,其他应用程序似乎隐式设置了这个标志,但可以通过使用 startActivityForResult(...) 来解决,这似乎删除了 NEW_TASK 标志.对于仍然无法运行的应用程序,我可以编写自己的替代品。

真正的问题是调用应用程序,它强制执行新的任务堆栈。触发调用启动调用,不显示调用 Activity ,但还会在状态栏中放置调用通知(使用 startLockTask() 时无法访问。与其他应用程序相比,通话应用程序也是无法用自定义应用程序替代的应用程序...

DevicePolicyManager.html.setLockTaskPackages()对此行为没有影响。

最佳答案

我试图在锁定模式下启动调用 Intent ,并弹出此行:

    system_process E/ActivityManager: Attempted Lock Task Mode violation mStartActivity=ActivityRecord{56ab302 u0 com.android.server.telecom/.components.UserCallActivity t155}

所以我补充

    setLockTaskPackages(<ComponentName>,new String[]{getPackageName(),"com.google.android.dialer","com.android.server.telecom"});

设法取出拨号器。当然,如果我按下主页按钮或后退按钮,就没有办法让拨号器恢复……不过最近的按钮仍然被锁定。接听电话效果很好(所有按钮都被禁用)

关于android - 在 Android Locktask 模式下执行调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41806416/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com