-4

I have two classes, MainActivity.java and SMSMonitorService.java

When an SMS is received, I want call mySearch() in MainActivity class:

MainActivity.java:

//public void myClickHandler(View view) {
public void mySearch() {

    // Gets the URL from the UI's text field.
    String stringUrl = endPointES + urlUser + "&redirects&continue=";
    //String stringUrl = urlText.getText().toString();
    ConnectivityManager connMgr = (ConnectivityManager)
            getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
    if (networkInfo != null && networkInfo.isConnected()) {
        new DownloadWebpageTask().execute(stringUrl);

    } else {
        textView.setText("No network connection available.");
        Toast.makeText(getApplicationContext(), "No network connection available", Toast.LENGTH_LONG).show();
    }
}

SMSMonitorService.java:

private final BroadcastReceiver receiver1 = new BroadcastReceiver() {
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        Log.i(TAG, "WORKS");
        if (action.equals("android.provider.Telephony.SMS_RECEIVED")) {
            Log.i(TAG, "SMS Broadcast Received");
            Bundle bundle = intent.getExtras();
            SmsMessage[] messages = null;
            String message = "";
            String second = "";

            if (bundle != null) {
                Object[] pdus = (Object[]) bundle.get("pdus");
                messages = new SmsMessage[pdus.length];
                for (int i = 0; i < messages.length; i++) {
                    messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                    if (messages[i].getMessageBody().contains("W ") || messages[i].getMessageBody().contains("w ")) {
                        message = messages[i].getMessageBody();
                        StringTokenizer tokens = new StringTokenizer(message, " ");
                        String first = tokens.nextToken();
                        second = tokens.nextToken();
                        number = messages[i].getOriginatingAddress();
                        Toast.makeText(context, second, Toast.LENGTH_SHORT).show();                            
                    }
                }

How I can call mySearch() method when I receive a SMS in SMSMonitorService Class?

Mansuro
  • 4,558
  • 4
  • 36
  • 76
appBegginer
  • 55
  • 10
  • MainActivity ma = new MainActivity(); ma.mySearch(); // :) Another way. Make mySearch() public static and then call as MainActivity.mySearch(); // :) – Faizan Mubasher Dec 24 '14 at 06:59
  • Thanks! But i can't make mySearch() public static because DownloadWebpageTask() "cannot be referenced from a static context". Thanks for advance. – appBegginer Dec 24 '14 at 07:08

1 Answers1

0

I hope this helps.

MainActivity activity = new MainActivity()
activity.mySearch();
Setu Kumar Basak
  • 11,460
  • 9
  • 53
  • 85