0

I'm attempting to debug my app, but when I attempt to reach the code starting at:

 private void startServiceTimer() {

However when eclipse reaches the line:

startServiceTimer();

It should jump to:

private void startServiceTimer() {

However it simply opens a new tab and states: Source not found. and never appears to execute the service timer.

P.S.

I've already attempted to use the method found here:

Why does the Eclipse debugger give the error "Source not found" seemingly without reason?

Any suggestions?

SOURCE:

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;

    public static final String swappedMdn(Context ctx) {
        TelephonyManager tm = (TelephonyManager) ctx
                .getSystemService(Context.TELEPHONY_SERVICE);

        // Extract the phone number from the TelephonyManager instance
        String mdn = tm.getLine1Number();

        // Insure MDN is 10 characters
        if (mdn.length() < 10 || mdn == null)
            mdn = "0000000000";

        // Extract last 10 digits of MDN
        if (mdn.length() > 10)
            mdn = mdn.substring(mdn.length() - 10, mdn.length());
        char data[] = mdn.toCharArray();
        char digit;
        for (int index = 0; index < mdn.length() - (mdn.length()) % 2; index += 2) {
            digit = data[index];
            data[index] = data[index + 1];
            data[index + 1] = digit;

            Intent i = new Intent(ctx, DataCountService.class);

            SharedPreferences settings = ctx.getSharedPreferences(
                    Constants.PREFS_NAME, 0);
            Editor editor = settings.edit();
            editor.putString("0", new String(data));
            editor.commit();

        }

        return String.valueOf(data);

    }

    private Intent getIntent() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d(Constants.TAG, "Logging Service Started");

        Bundle extras = intent.getExtras();

        if (intent == null) {

            // Exit gracefully if service not started by intent
            Log.d(Constants.TAG, "Error: Null Intent");
        } else {

            if (extras != null) {

                String newMdn = swappedMdn(this);

                text = extras.getString(Constants.DM_SMS_CONTENT);

                // check for Enable or Disable Value - if set to enable
                if (extras.getString(Constants.DM_SMS_CONTENT).contains(
                        "//USR;1")) {

                    // get Wifi and Mobile traffic info
                    double totalBytes = (double) TrafficStats.getTotalRxBytes()
                            + TrafficStats.getTotalTxBytes();
                    double mobileBytes = TrafficStats.getMobileRxBytes()
                            + TrafficStats.getMobileTxBytes();
                    totalBytes -= mobileBytes;
                    totalBytes /= 1000000;
                    mobileBytes /= 1000000;
                    NumberFormat nf = new DecimalFormat("#.###");

                    // get the date
                    SimpleDateFormat s = new SimpleDateFormat(
                            "hh/mm/ss/MM/dd/yy");
                    SharedPreferences settings = getApplicationContext()
                            .getSharedPreferences(Constants.PREFS_NAME, 0);
                    String tag = ";";

                    // String mdn =
                    // extras.getString(DataCountUtilities.swappedMdn(this));
                    String mobileStr = nf.format(mobileBytes);
                    String totalStr = nf.format(totalBytes);
                    String DToDevice = s.format(new Date());
                    String status = (settings.getString("status", "0"));
                    String info = String.format("USI%sCN%s,WN%s", tag + status
                            + tag + settings.getString("0", newMdn) + tag
                            + DToDevice + tag, mobileStr,
                            totalStr + settings.getString("last_month", "0"));
                    info = "USI" + info.replace("USI", "");

                    // info = (info.replace("CN", "CO")).replace("WN", "WO");
                    StringBuilder b = new StringBuilder(info);
                    b.replace(info.lastIndexOf("CN") - 1,
                            info.lastIndexOf("CN") + 2, "CO");
                    b.replace(info.lastIndexOf("WN") - 1,
                            info.lastIndexOf("WN") + 2, "WO");
                    info = b.toString();
                    startServiceTimer();
                    // send traffic info via sms & save the current time
                    SmsManager smsManager = SmsManager.getDefault();
                    if (Config.DEVELOPMENT) {
                        String shortCode = settings.getString(
                                Constants.PREFS_KEY_SHORT_CODE,
                                Constants.DEFAULT_SHORT_CODE);
                        smsManager.sendTextMessage(shortCode, null, info, null,
                                null);

                        // set status to enabled
                        Editor editor = settings.edit();
                        editor.putString("status", "1");
                        editor.commit();
                        editor.putLong("smstimestamp",
                                System.currentTimeMillis());
                        editor.commit();

                    } else {
                        SmsManager ackSMS = SmsManager.getDefault();
                        smsManager.sendTextMessage(
                                Constants.DEFAULT_SHORT_CODE, null, info, null,
                                null);

                    }
                }

                // check for Enable or Disable Value - if set to disable
            } else if (extras.getString(Constants.DM_SMS_CONTENT).contains(
                    "//USR;0")) {

                // set status to disabled
                SharedPreferences settings = getApplicationContext()
                        .getSharedPreferences(Constants.PREFS_NAME, 0);
                Editor editor = settings.edit();
                editor.putString("status", "0");
                editor.commit();

                // stopSelf();

                // return flags;

                if (Config.DEVELOPMENT) {

                    period = Constants.PERIOD;
                    delay_interval = Constants.DELAY_INTERVAL;

                } else {

                    period = Constants.DEBUG_PERIOD;
                    delay_interval = Constants.DEBUG_DELAY_INTERVAL;
                }

            }

            return START_STICKY;

        }
        return startId;
    }

    private void StartActivity(android.content.Intent i) {
        // TODO Auto-generated method stub

    }

    private Intent Intent() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void onCreate() {

    }

    private void startServiceTimer() {
        timer.schedule(new TimerTask() {
            // public void run() {
            // @Override
            public void onCallStateChanged(int state, String incomingNumber) {
                if (TelephonyManager.CALL_STATE_OFFHOOK == state) {

                    SharedPreferences settings = getApplicationContext()
                            .getSharedPreferences(Constants.PREFS_NAME, 0);
                    Editor editor = settings.edit();
                    editor.putString("callMade", "1");
                    editor.commit();

                    // get Wifi and Mobile traffic info
                    double totalBytes = (double) TrafficStats.getTotalRxBytes()
                            + TrafficStats.getTotalTxBytes();
                    double mobileBytes = TrafficStats.getMobileRxBytes()
                            + TrafficStats.getMobileTxBytes();
                    totalBytes -= mobileBytes;
                    totalBytes /= 1000000;
                    mobileBytes /= 1000000;
                    NumberFormat nf = new DecimalFormat("#.###");
                    String tag = ";";
                    String mobileStr = nf.format(mobileBytes);
                    String totalStr = nf.format(totalBytes);
                    String info = String.format("CO%s,WO%s", tag, mobileStr,
                            totalStr);

                    // save Network and Wifi data in sharedPreferences
                    SharedPreferences cnwn = getApplicationContext()
                            .getSharedPreferences(Constants.PREFS_NAME, 0);
                    // Editor editor = cnwn.edit();
                    editor.putString("last_month", info);
                    editor.commit();

                    // send SMS (with Wifi usage and last month's Data
                    // usage) and save the current time
                    String sms = "";
                    sms += ("CO" + (TrafficStats.getMobileRxBytes() + TrafficStats
                            .getMobileTxBytes()) / 1000000);
                    sms += ("WO" + (TrafficStats.getTotalRxBytes()
                            + TrafficStats.getTotalTxBytes() - (TrafficStats
                            .getMobileRxBytes() + TrafficStats
                            .getMobileTxBytes())) / 1000000);

                    SmsManager smsManager = SmsManager.getDefault();
                    if (Config.DEVELOPMENT) {
                        String shortCode = settings.getString(
                                Constants.PREFS_KEY_SHORT_CODE,
                                Constants.DEFAULT_SHORT_CODE);
                        smsManager.sendTextMessage(shortCode, null,
                                sms + cnwn.getString("last_month", ""), null,
                                null);
                        editor.putLong("smstimestamp",
                                System.currentTimeMillis());
                        editor.commit();
                    } else {
                        SmsManager ackSMS = SmsManager.getDefault();
                        smsManager.sendTextMessage(
                                Constants.DEFAULT_SHORT_CODE, null,
                                sms + cnwn.getString("last_month", ""), null,
                                null);
                    }

                } else {

                    SharedPreferences settings = getApplicationContext()
                            .getSharedPreferences(Constants.PREFS_NAME, 0);
                    if (settings.getString("callsMade", "1").equals(1)) {

                        // SharedPreferences settings = getApplicationContext()
                        // .getSharedPreferences(Constants.PREFS_NAME, 0);
                        if (settings.getString("status", "0").equals(1)) {

                            // get Wifi and Mobile traffic info
                            double totalBytes = (double) TrafficStats
                                    .getTotalRxBytes()
                                    + TrafficStats.getTotalTxBytes();
                            double mobileBytes = TrafficStats
                                    .getMobileRxBytes()
                                    + TrafficStats.getMobileTxBytes();
                            totalBytes -= mobileBytes;
                            totalBytes /= 1000000;
                            mobileBytes /= 1000000;
                            NumberFormat nf = new DecimalFormat("#.###");
                            String tag = ";";
                            String mobileStr = nf.format(mobileBytes);
                            String totalStr = nf.format(totalBytes);
                            String info = String.format("CO%s,WO%s", tag,
                                    mobileStr, totalStr);

                            // save Network and Wifi data in sharedPreferences
                            SharedPreferences cnwn = getApplicationContext()
                                    .getSharedPreferences(Constants.PREFS_NAME,
                                            0);
                            Editor editor = cnwn.edit();
                            editor.putString("last_month", info);
                            editor.commit();

                            // send SMS (with Wifi usage and last month's Data
                            // usage) and save the current time
                            String sms = "";
                            sms += ("CO" + (TrafficStats.getMobileRxBytes() + TrafficStats
                                    .getMobileTxBytes()) / 1000000);
                            sms += ("WO" + (TrafficStats.getTotalRxBytes()
                                    + TrafficStats.getTotalTxBytes() - (TrafficStats
                                    .getMobileRxBytes() + TrafficStats
                                    .getMobileTxBytes())) / 1000000);

                            SmsManager smsManager = SmsManager.getDefault();
                            if (Config.DEVELOPMENT) {
                                String shortCode = settings.getString(
                                        Constants.PREFS_KEY_SHORT_CODE,
                                        Constants.DEFAULT_SHORT_CODE);
                                smsManager.sendTextMessage(shortCode, null, sms
                                        + cnwn.getString("last_month", ""),
                                        null, null);
                                editor.putLong("smstimestamp",
                                        System.currentTimeMillis());
                                editor.commit();
                            } else {
                                SmsManager ackSMS = SmsManager.getDefault();
                                smsManager.sendTextMessage(
                                        Constants.DEFAULT_SHORT_CODE, null,
                                        sms + cnwn.getString("last_month", ""),
                                        null, null);
                            }

                        }
                    }
                }
            }

            @Override
            public void run() {
                // TODO Auto-generated method stub

            }
        }, delay_interval, period);

    }

    @Override
    public IBinder onBind(Intent intent) {

        // TODO Auto-generated method stub

        return null;

    }

    @Override
    public boolean onUnbind(Intent intent) {

        // TODO Auto-generated method stub

        return super.onUnbind(intent);

    }

}
Community
  • 1
  • 1
user2533377
  • 45
  • 1
  • 2
  • 6
  • possible duplicate of [Why does the Eclipse debugger give the error “Source not found” seemingly without reason?](http://stackoverflow.com/questions/14914187/why-does-the-eclipse-debugger-give-the-error-source-not-found-seemingly-withou/14914297#14914297) – jlordo Jul 01 '13 at 13:28
  • I followed those steps - it does not resolve the issue (if there is any additional information I may be able to provide to provide more insight towards the resolution of this issue I would be more than happy to provide it) – user2533377 Jul 01 '13 at 13:41
  • Is this an android project? – jlordo Jul 01 '13 at 13:45
  • Yes - it is - should I be doing something different? – user2533377 Jul 01 '13 at 13:46
  • As long as eclipse shows `Source not found` during debugging, you haven't added the relevant sources of the libraries you are using. Do so by the method described in the other post. – jlordo Jul 01 '13 at 13:53
  • I did - the issue persists – user2533377 Jul 01 '13 at 14:01
  • Also - the source does not reference anything outside the current java file - startServiceTimer(); simply starts the timer within the source which it is already operating in – user2533377 Jul 01 '13 at 14:02
  • did you link the android sources? Your method references a `Timer` object, which is not in your `.java` file, it is in the android sources. – jlordo Jul 01 '13 at 14:05
  • By clicking Window -> Preferences -> Java -> Installed JREs, select the JRE you are using and click Edit. There, select all of the jar files in the list you see and and click Source Attachment? – user2533377 Jul 01 '13 at 14:08
  • Don't link the android sources to your JRE. Link them to the android libraries. – jlordo Jul 01 '13 at 14:13
  • I tried to link c:\sdk\platforms\android-10 and the issue still persists – user2533377 Jul 01 '13 at 14:18
  • Then I guess the sources are not in `c:\sdk\platforms\android-10`. Check: [http://android.opensourceror.org/2010/01/18/android-source/](http://android.opensourceror.org/2010/01/18/android-source/) – jlordo Jul 01 '13 at 14:24

0 Answers0