【问题标题】:Automatically open dialpad on incoming / outgoing call来电/去电时自动打开拨号盘
【发布时间】:2019-02-21 16:09:10
【问题描述】:

我正在考虑制作一个小型后台实用程序,它可以检测任何一部手机何时收到来电/用户何时拨打电话。根据动作,当手机离开耳朵时,数字拨号盘会自动显示。

我知道,如何检测呼叫类型,但不知道是否可以触发 Intent 操作以要求 android 以编程方式打开拨号盘。

请建议,如果可能的话以及如何。

谢谢 奥姆卡尔·盖萨斯

【问题讨论】:

    标签: android telephonymanager


    【解决方案1】:

    是的,可以为来电创建一个广播接收器,然后在 onrecieve 中写下此代码,它将打开一个拨号盘

    Intent dial = new Intent();
    dial.setAction("android.intent.action.DIAL");
    dial.setData(Uri.parse("tel:"));
    dial.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(dial);
    

    对于广播和服务,请阅读此http://www.vogella.de/articles/AndroidServices/article.html

    也检查一下

    http://androidsourcecode.blogspot.in/2010/10/blocking-incoming-call-android.html

    【讨论】:

    • 但这会打开用于拨出号码的默认数字键盘还是在通话期间显示的数字键盘(当通话处于活动状态时)?我认为它会在来电时打开一个新活动,而不是在接到电话时打开拨号盘。请建议。
    • 嗨,你提出了一个很好的观点,检查我更新的代码,它会按照你的意愿做同样的事情,我也已经测试过了
    • 但是您的要求有点奇怪,为什么您在来电时需要拨号盘???如果您在通话过程中拨打号码,可能会导致一些问题
    • 没有。我想,我把你弄糊涂了。我想自动打开电话活动提供的拨号盘(我认为是 com.android.phone.InCallscreen 活动),其中,如果通话处于活动状态并且用户将手机从耳边拿开,应用程序将打开拨号盘在该活动中,否则它将像往常一样弹出拨号盘。让我知道,如果这很清楚。
    • 这似乎是拨出号码的解决方案,并且在来电期间不自动显示拨号盘(当操作系统打开 InCallScreen 活动时)。请建议,如果我错了。
    猜你喜欢
    • 2023-03-26
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多