Android 如何使用PreciseCallState

Android 如何使用PreciseCallState,android,Android,我正在制作一个应该能够检测通话状态的应用程序,早些时候我被建议使用PreciseCallState,因为默认情况下,android无法准确检测通话处于什么状态,PreciseCallState位于电话分机中,该分机位于,如何让我的导入工作?,在安卓上,这在很大程度上会起作用吗?试试这个 首先,你像这样接受许可 <uses-permission android:name="android.permission.READ_PRECISE_PHONE_STATE" /> 但该权限是为特殊

我正在制作一个应该能够检测通话状态的应用程序,早些时候我被建议使用
PreciseCallState
,因为默认情况下,android无法准确检测通话处于什么状态,
PreciseCallState
位于电话分机中,该分机位于,如何让我的导入工作?,在安卓<5或其仅有的5>上,这在很大程度上会起作用吗?

试试这个

首先,你像这样接受许可

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

但该权限是为特殊用途应用程序定义的,如拨号器、载波应用程序或ims应用程序。那么普通应用程序应该如何处理它呢

读取\u精确\u电话\u状态 公共静态最终字符串读取\精确\电话\状态 允许以只读方式访问精确的手机状态。允许读取有关特殊用途应用程序(如拨号器、运营商应用程序或ims应用程序)的电话状态的详细信息


常量值:“android.permission.READ\u precision\u PHONE\u STATE”

有用,但不回答问题。如何在项目中包含库,以及什么是SDKrequired@TimCastelijns确切地说,我应该如何包含这个库,因为它似乎没有默认SDK,更像是隐藏的API。我需要下载电话扩展SDK(虽然我已经尝试过了,但它不起作用)或者下载整个SDK?不确定这是否有帮助-@androiddeveloper我面临一个关于呼叫阻塞的问题。你能帮帮我吗
<receiver android:name=".OutCallLogger">
    <intent-filter>
        <action android:name="android.intent.action.PRECISE_CALL_STATE" />
    </intent-filter>
</receiver>
public class OutCallLogger extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        switch (intent.getIntExtra(TelephonyManager.EXTRA_FOREGROUND_CALL_STATE, -2) {
            case PreciseCallState.PRECISE_CALL_STATE_IDLE:
                Log.d(This.LOG_TAG, "IDLE");
                break;
            case PreciseCallState.PRECISE_CALL_STATE_DIALING:
                Log.d(This.LOG_TAG, "DIALING");
                break;
            case PreciseCallState.PRECISE_CALL_STATE_ALERTING:
                Log.d(This.LOG_TAG, "ALERTING");
                break;
            case PreciseCallState.PRECISE_CALL_STATE_ACTIVE:
                Log.d(This.LOG_TAG, "ACTIVE");
                break;
        }
    }
}