2013-06-22 3 views
0

Здравствуйте! У меня есть приложение, которое читает журналы вызовов, входящие sms и исходящие sms.Начинает новую деятельность после предыдущего автоматически

Когда приложение впервые запущено, оно отображает журналы вызовов, а затем прослушивает входящие и исходящие смс. У меня есть три класса: Основная активность, IncomingSms.Java и outgoingSms.java.

Основное действие начинается нормально и показывает все в порядке, но входящие и исходящие функции sms не запускаются. Мои входящие и исходящие классы sms на 100% правильны и отлично работают, если я создаю и запускаю как новый проект, но они не работают вместе.

Все, что я хочу, это вызвать все эти процессы одновременно, это мой код.

MainActivity.java

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     getCallDetails(); 
    } 

    @SuppressWarnings("deprecation") 
    private void getCallDetails() { 

     //rest of code here 


    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 
} 

мой IncmingSms.java

public class IncomingSms extends BroadcastReceiver { 
    public void onReceive(Context context, Intent intent) { 
     final Bundle bundle = intent.getExtras(); 
     final SmsManager sms = SmsManager.getDefault(); 
     // REST OF CODE HERE 
    } 
} 

OutgoingSms.java

public class OutgoingSms extends Activity { 
    final SmsManager sms = SmsManager.getDefault(); 

    ContentResolver contentResolver; 
    ContentObserver smsContentObserver; 

    @Override 
    public void onResume() { 
     super.onResume(); 
     smsContentObserver = new ContentObserver(new Handler()) { 

      @Override 
      public void onChange(boolean selfChange) { 
       Uri smsURI = Uri.parse("content://sms/sent"); 
       Cursor c = getContentResolver().query(smsURI, new String[] { 
        "address", "date", "body", "type" 
       }, null, null, null); 
       String[] columns = new String[] { 
        "address", "date", "body", "type" 
       }; 
       c.moveToNext(); 
       Rest of Code [email protected] Override 
       public boolean deliverSelfNotifications() { 
        return true; 
       } 
      }; 

      contentResolver.registerContentObserver(Uri.parse("content://sms"), true, smsContentObserver); 

     } 

     @Override 
     public void onDestroy() { 
      super.onDestroy(); 
      contentResolver.unregisterContentObserver(smsContentObserver); 
     } 
    } 

ответ

0

Вы можете объединить OutgoingSms.java и MainActivity.java .Также вы можете сообщить свой MainActivity от IncomingSms когда он принимает эс новый sms.You можно увидеть более подробную информацию здесь:

how can I notify a running activity from a broadcast receiver?

How can I send result data from Broadcast Receiver to Activity

Android BroadcastReceiver Tutorial