应用程序被杀死时如何在Android中检测来电电话号码?

Posted

技术标签:

【中文标题】应用程序被杀死时如何在Android中检测来电电话号码?【英文标题】:How to detect incoming call phone number in Android when app is killed? 【发布时间】:2022-01-13 06:46:01 【问题描述】:

我想在我的应用程序未运行时检测来电/去电电话号码,它被杀死了。我已经实现了以下代码,它仅在应用程序正在运行或在后台检测调用,但在应用程序被终止时不工作。

public class CallReceiver extends BroadcastReceiver 

@Override
public void onReceive(Context context, Intent intent) 

    if(intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_OFFHOOK))
        String outgoingPhoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
        showToast(context,"Call Outgoing to "+outgoingPhoneNumber);
    else if(intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_IDLE))
        String callEndedNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
        showToast(context,"Call Ended to "+callEndedNumber);
    else if(intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING))
        String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
        showToast(context, "Incoming call from "+ incomingNumber);
    


private void  showToast(Context context, String message)

    Toast.makeText(context, message, Toast.LENGTH_SHORT).show();




清单

  <receiver android:name=".CallReceiver"
        android:enabled="true"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.PHONE_STATE"/>
        </intent-filter>
    </receiver>

【问题讨论】:

“它死了,戴夫”。死物不显示生命体征,Android 要求用户手动启动应用程序以使所有接收器工作。除非用户友好地重新启动应用程序,否则您可能会死机 这是否回答了您的问题? ***.com/a/63352467/6419026 trueCaller 在不将其设为默认通话应用的情况下如何做到这一点? 请尝试阅读此developer.android.com/reference/android/telecom/InCallService “它被杀死了”——确切地说是什么意思?而且,您在什么设备/模拟器上测试过这种行为? 【参考方案1】:

不完全是答案,但您可以创建自定义呼叫应用程序,然后通过请求许可将其设为默认值。可以在on this repository 找到演示应用程序。看看这个应用程序代码,你可能会明白。

【讨论】:

以上是关于应用程序被杀死时如何在Android中检测来电电话号码?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 设备中检测来电?

在 android API29+ 中检测来电和去电

无法在 Android 中录制来电和去电的音频

Android:来电时的电话号码格式,确定国家代码?

无论如何要为Android中的来电和去电制作我的自定义用户界面吗?

如何使用javascript检测浏览器中的手机事件?