2013-06-22 66 views
0

您好!我有一個應用程序,它讀取通話記錄,傳入的短信和傳出的短信。以前自動啓動新活動

當應用程序第一次啓動時,它顯示通話記錄,然後偵聽傳入和傳出的短信。我有三個類:主要活動,IncomingSms.Java和outgoingSms.java。

主要活動正常開始,並顯示一切正常,但傳入和傳出的短信功能不會被觸發。我的傳入和傳出的短信班是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 her[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); 
     } 
    } 

回答