问题
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");
}
}
}
回答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.
回答2:
mTM.listen(callListener, PhoneStateListener.LISTEN_CALL_STATE);
Should be inside a method, not directly inside class. Refer this question for example implementation.
来源:https://stackoverflow.com/questions/17352905/syntax-error-on-tokens-constructorheadername-expected-instead-syntax-error-on