Android : Android: returning the result code

on Friday, August 8, 2014


In this code from my MainActivity.java



public static int sendSMS(String phoneNumber,String message) {
SmsManager smsManager = SmsManager.getDefault();
int result_code;

PendingIntent sentPI = PendingIntent.getBroadcast(basecontext, 0, new Intent(SENT), 0);

// ---when the SMS has been sent---
basecontext.registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode()) {
case Activity.RESULT_OK:
result_code = 1;
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
result_code = 2;
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
result_code = 3;
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
result_code = 4;
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
result_code = 5;
break;
}
}
}, new IntentFilter(SENT));
smsManager.sendTextMessage(phoneNumber, null, message, sentPI, null);
return result_code;
}


but is says "Cannot refer to a non-final variable result_code inside an inner class defined in a different method". I did this because ill use it in my AlarmReceiver class like this



public class alarmReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent arg1) {

int i = MainActivity.sendSms("6391234123","Hello world");
if(i==1){some codes here}
else if(i==2){some codes here}
....
....
}
}


For short I don't know how to pass those numbers in result_code and return it if the method is called. Any way to do this? Sorry if I cant ask a good question, and more specific because Im new here and bad english also.


0 comments:

Post a Comment