2013-06-22 4 views
0

안녕하세요! 통화 로그, 수신 SMS 및 발신 SMS를 읽는 응용 프로그램이 있습니다.이전 활동이 자동으로 시작됩니다.

응용 프로그램을 처음 시작하면 통화 로그를 표시 한 다음 수신 및 발신 SMS를 수신합니다. 나는 Main Activity, IncomingSms.Java, outgoingSms.java의 세 클래스를 가지고있다.

주 활동이 정상적으로 시작되고 모든 항목이 올바르게 표시되지만 들어오고 나가는 SMS 기능은 실행되지 않습니다. 내 수신 및 발신 SMS 클래스는 100 % 정확하며 새 프로젝트를 만들고 실행하면 잘 작동하지만 함께 작동하지는 않습니다.

내가 원한다면이 모든 프로세스를 동시에 트리거하는 것이 나의 코드이다. 당신이 IncomingSms에서 MainActivity을 알릴 수 있습니다 .Also 당신은 OutgoingSms.javaMainActivity.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

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 수신 할 때 ES 새로운 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

관련 문제