2011-04-06 6 views
3

이 코드는 기본 에뮬레이터에서 SMS를 보낼 때 SMS 번호를 얻으려고 시도했지만 작동하지 않습니다. http://gbandroid.googlecode.com/svn-history/r46/trunk/MobileSpy/src/org/ddth/android/monitor/observer/AndroidSmsWatcher.java 그것은 ContentObserver 만들고, SMS는 테이블을 수신나가는 시간에 contentObserver에 의해 SMS 번호를 얻으십시오

은 다음 보내는 SMS를 가져옵니다 그냥이 코드를 봐 주시기 바랍니다 확인하고 그

고맙습니다

package com.SMSOberver5; 
import android.app.Activity; 
import android.database.ContentObserver; 
import android.database.Cursor; 
import android.net.Uri; 
import android.os.Bundle; 
import android.os.Handler; 
import android.widget.Toast; 

public class SMSOberver5 extends Activity { 
     /** Called when the activity is first created. */ 
    Handler handler = null; 
    @Override 
     public void onCreate(Bundle savedInstanceState) 
     { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.main); 
       setReceiver(); 
     } 
    private SMSObserver smsSentObserver = new SMSObserver(new Handler()); 
    private void setReceiver() { 
     this.getContentResolver().registerContentObserver(
         Uri.parse("content://sms/sent"), true, smsSentObserver); 
} 
class SMSObserver extends ContentObserver 
{ 
     public SMSObserver(Handler handler) { 
     super(handler); 
     }  

        @Override 
        public void onChange(boolean selfChange) 
        { 
         try 
         { 
         //startManagingCursor(c); 
         super.onChange(selfChange); 
         System.out.println("body"); 
          System.out.println("number"); 
         Cursor sms_sent_cursor = SMSOberver5.this.managedQuery(Uri 
           .parse("content://sms/sent"), null, "type=?", 
           new String[] { "2" }, null); 
         int smsEntriesCount = sms_sent_cursor.getCount(); 
         String[] body = new String[smsEntriesCount]; 
         String[] number = new String[smsEntriesCount]; 
         if (sms_sent_cursor.moveToFirst()) 
         { 
           for (int i = 0; i < smsEntriesCount; i++) 
           { 
             body[i] = sms_sent_cursor.getString(sms_sent_cursor.getColumnIndexOrThrow("body")).toString(); 
             number[i] = sms_sent_cursor.getString(sms_sent_cursor.getColumnIndexOrThrow("address")).toString(); 
             sms_sent_cursor.moveToNext(); 
           } 

           Toast.makeText(getBaseContext(), "text", Toast.LENGTH_LONG).show(); 
          }sms_sent_cursor.close(); 
         }catch(Exception e) 
         {} 

        } 
     }} 
+1

어떤 오류가 발생하고 무엇을하고 싶습니까? –

+0

참고로, 나는 우리가 sms (블록 에뮬레이터 sms를 위해)를 보낼 때 전화 번호를 원한다. 나는 pertivular 숫자를 위해 나가는 sms를 멈추고 싶다. 그래서 번호가 필요하기 때문에 코드가 ........ – nikunj45698565446

답변

2

에 대해 말해 그들에 대한 몇 가지 정보를 얻습니다.

+0

다른 클래스를 구현해야합니까? 그렇지 않으면 어떻게 작동합니까? –