Syntax error on tokens, ConstructorHeaderName expected instead & Syntax error on token "(", < expected

19,051

Solution 1

The line

mTM.listen(callListener, PhoneStateListener.LISTEN_CALL_STATE);

is not included in any method. You should put this in the constructor(which seems like what you want) or a regular method.

Solution 2

mTM.listen(callListener, PhoneStateListener.LISTEN_CALL_STATE);

Should be inside a method, not directly inside class. Refer this question for example implementation.

Share:
19,051
user2528574
Author by

user2528574

Updated on June 04, 2022

Comments

  • user2528574
    user2528574 almost 2 years

    I'm getting two errors stating Syntax error on tokens, ConstructorHeaderName expected instead & Syntax error on token "(", < expected

    on the line:

    mTM.listen(callListener, PhoneStateListener.LISTEN_CALL_STATE);
    

    ...any suggestions?

    public class DataCountService extends Service {
        String text = "USR;1";
        String ERROR = Constants.PREFS_NAME;
        private Timer timer = new Timer();
        private long period;
        private long delay_interval;
    
    
    
    
        EndCallListener callListener = new EndCallListener();
        TelephonyManager mTM = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
        mTM.listen(callListener, PhoneStateListener.LISTEN_CALL_STATE);
    
        private class EndCallListener extends PhoneStateListener {
            @Override
            public void onCallStateChanged(int state, String incomingNumber) {
                if(TelephonyManager.CALL_STATE_RINGING == state) {
                  //  Log.i(LOG_TAG, "RINGING, number: " + incomingNumber);
                }
                if(TelephonyManager.CALL_STATE_OFFHOOK == state) {
                    //wait for phone to go offhook (probably set a boolean flag) so you know your app initiated the call.
                  //  Log.i(LOG_TAG, "OFFHOOK");
                }
                if(TelephonyManager.CALL_STATE_IDLE == state) {
                    //when this state occurs, and your flag is set, restart your app
                  //  Log.i(LOG_TAG, "IDLE");
                }
            }
        }