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