zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

android读取短信示例分享

Android 示例 分享 读取 短信
2023-06-13 09:15:18 时间

复制代码代码如下:


packagecom.homer.sms;

importjava.sql.Date;
importjava.text.SimpleDateFormat;


importandroid.app.Activity;
importandroid.database.Cursor;
importandroid.database.sqlite.SQLiteException;
importandroid.net.Uri;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.widget.ScrollView;
importandroid.widget.TableLayout;
importandroid.widget.TextView;

publicclasssmsReadextendsActivity{

 @Override
 publicvoidonCreate(BundlesavedInstanceState){
  super.onCreate(savedInstanceState);

  TextViewtv=newTextView(this);
  tv.setText(getSmsInPhone());

  ScrollViewsv=newScrollView(this);
  sv.addView(tv);

  setContentView(sv);
 }

 publicStringgetSmsInPhone(){
  finalStringSMS_URI_ALL="content://sms/";
  finalStringSMS_URI_INBOX="content://sms/inbox";
  finalStringSMS_URI_SEND="content://sms/sent";
  finalStringSMS_URI_DRAFT="content://sms/draft";
  finalStringSMS_URI_OUTBOX="content://sms/outbox";
  finalStringSMS_URI_FAILED="content://sms/failed";
  finalStringSMS_URI_QUEUED="content://sms/queued";

  StringBuildersmsBuilder=newStringBuilder();

  try{
   Uriuri=Uri.parse(SMS_URI_ALL);
   String[]projection=newString[]{"_id","address","person","body","date","type"};
   Cursorcur=getContentResolver().query(uri,projection,null,null,"datedesc");  //获取手机内部短信

   if(cur.moveToFirst()){
    intindex_Address=cur.getColumnIndex("address");
    intindex_Person=cur.getColumnIndex("person");
    intindex_Body=cur.getColumnIndex("body");
    intindex_Date=cur.getColumnIndex("date");
    intindex_Type=cur.getColumnIndex("type");

    do{
     StringstrAddress=cur.getString(index_Address);
     intintPerson=cur.getInt(index_Person);
     Stringstrbody=cur.getString(index_Body);
     longlongDate=cur.getLong(index_Date);
     intintType=cur.getInt(index_Type);

     SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");
     Dated=newDate(longDate);
     StringstrDate=dateFormat.format(d);

     StringstrType="";
     if(intType==1){
      strType="接收";
     }elseif(intType==2){
      strType="发送";
     }else{
      strType="null";
     }

     smsBuilder.append("[");
     smsBuilder.append(strAddress+",");
     smsBuilder.append(intPerson+",");
     smsBuilder.append(strbody+",");
     smsBuilder.append(strDate+",");
     smsBuilder.append(strType);
     smsBuilder.append("]\n\n");
    }while(cur.moveToNext());

    if(!cur.isClosed()){
     cur.close();
     cur=null;
    }
   }else{
    smsBuilder.append("noresult!");
   }//endif

   smsBuilder.append("getSmsInPhonehasexecuted!");

  }catch(SQLiteExceptionex){
   Log.d("SQLiteExceptioningetSmsInPhone",ex.getMessage());
  }

  returnsmsBuilder.toString();
 }
}



记得在AndroidManifest.xml中加入android.permission.READ_SMS这个permission
复制代码代码如下:

<uses-permissionandroid:name="android.permission.READ_SMS"/>