안 드 로 이 드 에서 문자 읽 기

인용 하 다.
원본 주소:http://hi.baidu.com/miuchen/blog/item/d5313b34bf35b887a61e1288.html

import android.app.Activity;
import android.content.ContentValues;
import android.database.ContentObserver;
import android.database.Cursor;
import android.database.sqlite.SQLiteException;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.widget.TextView;

public class mini extends Activity {
/** *//** Called when the activity is first created. */
private static final String LOG_TAG = "Sms Query";

//   onCreate
@Override
public void onCreate(Bundle savedInstanceState) {
   // super.onCreate(savedInstanceState);
   // setContentView(R.layout.main);
   super.onCreate(savedInstanceState); 
   TextView tv = new TextView(this);

   tv.setText("Hello, Android");
  
   tv.setText(getSmsAndSendBack());
    
   setContentView(tv);
}
/** *//**
*     
* @return
*/
public String getSmsAndSendBack()
{
   String[] projection = new String[] {
     "_id",
     "address",
     "person",
     "body"
    };
   StringBuilder str=new StringBuilder();
   try{
    Cursor myCursor = managedQuery(Uri.parse("content://sms/inbox"),
      projection,
      null, null , "date desc");
    str.append(processResults(myCursor, true));  
    str.append("getContactsAndSendBack has executed!");
/**//*    myCursor = managedQuery(Uri.parse("content://sms/inbox"),
      new String[] { "_id", "address", "read" },
      " address=? and read=?",
      new String[] { "12345678901", "0" }, "date desc");*/
   
   }
   catch (SQLiteException ex)
   {
    Log.d(LOG_TAG, ex.getMessage());
   }
   return str.toString();
}
/** *//**
*       
* @param cur
* @param all              。     all,    
*/
private StringBuilder processResults(Cursor cur, boolean all) {
   // TODO Auto-generated method stub
   StringBuilder str=new StringBuilder();
   if (cur.moveToFirst()) {

         String name; 
         String phoneNumber;       
         String sms;
         
         
         int nameColumn = cur.getColumnIndex("person");
         int phoneColumn = cur.getColumnIndex("address");
         int smsColumn = cur.getColumnIndex("body");
         
         do {
             // Get the field values
             name = cur.getString(nameColumn);             
             phoneNumber = cur.getString(phoneColumn);
             sms = cur.getString(smsColumn);
             
             str.append("{");
             str.append(name+",");
             str.append(phoneNumber+",");
             str.append(sms);
             str.append("}");
             

             
             if (null==sms)
             sms="";
             
             
/**//*             if (all)
             mView.loadUrl("javascript:navigator.SmsManager.droidAddContact('" + name + "','" + phoneNumber + "','" + sms +"')");             
             else
             mView.loadUrl("javascript:navigator.sms.droidFoundContact('" + name + "','" + phoneNumber + "','" + sms +"')");*/
                          
         } while (cur.moveToNext());
/**//*         if (all)
         mView.loadUrl("javascript:navigator.SmsManager.droidDone()");
         else
         mView.loadUrl("javascript:navigator.sms.droidDone();");*/
     }
     else
     {
     str.append("no result!");
/**//*     if(all)
        mView.loadUrl("javascript:navigator.SmsManager.fail()");
     else
        mView.loadUrl("javascript:navigator.sms.fail('None found!')");*/
     }

   return str;
}//processResults
}



public final static String SMS_URI_ALL =  "content://sms/"; //0   
public final static String SMS_URI_INBOX = "content://sms/inbox";//1   
public final static String SMS_URI_SEND = "content://sms/sent";//2   
public final static String SMS_URI_DRAFT = "content://sms/draft";//3   
public final static String SMS_URI_OUTBOX = "content://sms/outbox";//4   
public final static String SMS_URI_FAILED = "content://sms/failed";//5   
public final static String SMS_URI_QUEUED = "content://sms/queued";//6   


_id=>짧 은 메시지 번호 100  
thread_id=>대화 번호 100  
address=>보 낸 사람 주소,핸드폰 번호.예 를 들 어+8613811810000  
person=>보 낸 사람,돌아 오 는 숫자 는 연락처 목록 의 번호 입 니 다.낯 선 사람 은 null 입 니 다.  
날짜  long 형.1256539465022  
protocol=>프로 토 콜 0 SMSRPOTO, 1 MMS_PROTO   
read=>0 읽 지 않 았 는 지,1 읽 었 는 지 여부   
status=>상태-1 수신,0 완료,64 보류,128 실패   
type=>형식 1 은 받 았 습 니 다.2 는 보 냈 습 니 다.   
body=>짧 은 메시지 내용   
service_center=>문자 서비스 센터 번호.예 를 들 어+8613800755500  
AndroidManifest.xml 에 android.permission.READ 를 추가 하 는 것 을 기억 하 세 요.SMS 라 는 권한
  • 좋은 웹페이지 즐겨찾기