3

I want to use 'PreciseCallState.java' to listen the state of out-going call.

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");
            Toast.makeText(context,"hello",Toast.LENGTH_LONG).show();
            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;
    }
}

and I also added this to AndroidManifest.xml.

<uses-permission android:name="android.permission.READ_PRECISE_PHONE_STATE" />
<receiver android:name=".listener.OutCallLogger">
    <intent-filter>
        <action android:name="android.intent.action.PRECISE_CALL_STATE" />
    </intent-filter>
</receiver>

but AndroidStudio said "Cannot resolve symbol 'PreciseCallState'", although I know PreciseCallState.java exists in sdk folder/android/telephony.

rflr
  • 31
  • 3

0 Answers0