亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android編程之SMS讀取短信并保存到SQLite的方法

2020-04-11 11:19:16
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程之SMS讀取短信并保存到SQLite的方法。分享給大家供大家參考,具體如下:

Android 之 SMS 短信在Android系統中是保存在SQLite數據庫中的,但不讓其它程序訪問(Android系統的安全機制)

現在我們在讀取手機內的SMS短信,先保存在我們自己定義的SQLite數據庫中,然后讀取SQLite數據庫提取短信,并顯示

SMS短信SQLite存取代碼:

package com.homer.sms; import java.sql.Date; import java.text.SimpleDateFormat; import org.loon.wsi.R; import android.app.Activity; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.graphics.Color; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.widget.TableLayout; import android.widget.TableRow; import android.widget.TableRow.LayoutParams; import android.widget.TextView; /**  * 讀取手機短信, 先保存到SQLite數據,然后再讀取數據庫顯示  *  * @author sunboy_2050  * @since http://blog.csdn.net/sunboy_2050  * @date 2012.03.06  */ public class smsRead4 extends Activity {  TableLayout tableLayout;  int index = 0;  @Override  public void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.main);   tableLayout = (TableLayout) findViewById(R.id.tableLayout);   showSMS();  }  private void showSMS() {   SmsHander smsHander = new SmsHander(this);   smsHander.createSMSDatabase(); // 創建SQLite數據庫   smsHander.insertSMSToDatabase(); // 讀取手機短信,插入SQLite數據庫   Cursor cursor = smsHander.querySMSInDatabase(100); // 獲取前100條短信(日期排序)   cursor.moveToPosition(-1);   while (cursor.moveToNext()) {    String strAddress = cursor.getString(cursor.getColumnIndex("address"));    String strDate = cursor.getString(cursor.getColumnIndex("date"));    String strBody = cursor.getString(cursor.getColumnIndex("body"));    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    Date date = new Date(Long.parseLong(strDate));    strDate = dateFormat.format(date);    String smsTitle = strAddress + "/t/t" + strDate;    String smsBody = strBody + "/n";    Log.i("tableRow", smsTitle + smsBody);    // title Row    TableRow trTitle = new TableRow(this);    trTitle.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));    TextView tvTitle = new TextView(this);    tvTitle.setText(smsTitle);    tvTitle.getPaint().setFakeBoldText(true); // 加粗字體    tvTitle.setTextColor(Color.RED);    tvTitle.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));    trTitle.addView(tvTitle);    tableLayout.addView(trTitle, new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));    // body Row    TableRow trBody = new TableRow(this);    trBody.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));    TextView tvBody = new TextView(this);    tvBody.setText(smsBody);    tvBody.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));    trBody.addView(tvBody);    tableLayout.addView(trBody, new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));   }   if (!cursor.isClosed()) {    cursor.close();    cursor = null;   }   smsHander.closeSMSDatabase();   index = 0;  }  public class SmsHander {   SQLiteDatabase db;   Context context;   public SmsHander(Context context) {    this.context = context;   }   public void createSMSDatabase() {    String sql = "create table if not exists sms("      + "_id integer primary key autoincrement,"      + "address varchar(255)," + "person varchar(255),"      + "body varchar(1024)," + "date varchar(255),"      + "type integer)";    db = SQLiteDatabase.openOrCreateDatabase(context.getFilesDir().toString() + "/data.db3", null); // 創建數據庫   db.execSQL(sql);  }  // 獲取手機短信  private Cursor getSMSInPhone() {   Uri SMS_CONTENT = Uri.parse("content://sms/");    String[] projection = new String[] { "_id", "address", "person", "body", "date", "type" };   Cursor cursor = context.getContentResolver().query(SMS_CONTENT, projection, null, null, "date desc"); // 獲取手機短信   while (cursor.moveToNext()) {    System.out.println("--sms-- : " + cursor.getString(cursor.getColumnIndex("body")));   }   return cursor;   }   // 保存手機短信到 SQLite 數據庫   public void insertSMSToDatabase() {   Long lastTime;   Cursor dbCount = db.rawQuery("select count(*) from sms", null);   dbCount.moveToFirst();   if (dbCount.getInt(0) > 0) {    Cursor dbcur = db.rawQuery("select * from sms order by date desc limit 1", null);    dbcur.moveToFirst();    lastTime = Long.parseLong(dbcur.getString(dbcur.getColumnIndex("date")));   } else {    lastTime = new Long(0);   }   dbCount.close();   dbCount = null;   Cursor cur = getSMSInPhone(); // 獲取短信(游標)   db.beginTransaction(); // 開始事務處理   if (cur.moveToFirst()) {    String address;    String person;    String body;    String date;    int type;    int iAddress = cur.getColumnIndex("address");    int iPerson = cur.getColumnIndex("person");    int iBody = cur.getColumnIndex("body");    int iDate = cur.getColumnIndex("date");    int iType = cur.getColumnIndex("type");    do {     address = cur.getString(iAddress);     person = cur.getString(iPerson);     body = cur.getString(iBody);     date = cur.getString(iDate);     type = cur.getInt(iType);     if (Long.parseLong(date) > lastTime) {      String sql = "insert into sms values(null, ?, ?, ?, ?, ?)";      Object[] bindArgs = new Object[] { address, person, body, date, type };      db.execSQL(sql, bindArgs);     } else {      break;     }    } while (cur.moveToNext());    cur.close();    cur = null;    db.setTransactionSuccessful(); // 設置事務處理成功,不設置會自動回滾不提交    db.endTransaction(); // 結束事務處理   }  }  // 獲取 SQLite 數據庫中的全部短信  public Cursor querySMSFromDatabase() {   String sql = "select * from sms order by date desc";   return db.rawQuery(sql, null);  }  // 獲取 SQLite 數據庫中的最新 size 條短信  public Cursor querySMSInDatabase(int size) {   String sql;   Cursor dbCount = db.rawQuery("select count(*) from sms", null);   dbCount.moveToFirst();   if (size < dbCount.getInt(0)) { // 不足 size 條短信,則取前 size 條    sql = "select * from sms order by date desc limit " + size;   } else {    sql = "select * from sms order by date desc";   }   dbCount.close();   dbCount = null;   return db.rawQuery(sql, null);  }  // 獲取 SQLite數據庫的前 second秒短信  public Cursor getSMSInDatabaseFrom(long second) {   long time = System.currentTimeMillis() / 1000 - second;   String sql = "select * from sms order by date desc where date > " + time;   return db.rawQuery(sql, null);  }  // 關閉數據庫  public void closeSMSDatabase() {   if (db != null && db.isOpen()) {    db.close();    db = null;   }  } }}

運行結果:

完整實例代碼代碼點擊此處本站下載。

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲2020天天堂在线观看| 日韩av123| 尤物99国产成人精品视频| 81精品国产乱码久久久久久| 亚洲欧美日韩在线高清直播| 亚洲免费视频观看| 国产精品小说在线| 亚洲欧美日韩一区二区三区在线| 亚洲高清久久久久久| 91精品国产亚洲| 中文字幕亚洲综合久久| 国产亚洲精品成人av久久ww| 欧美日韩成人精品| 欧美激情在线有限公司| 亚洲free性xxxx护士hd| 国产美女被下药99| 日本欧美一二三区| 最近2019中文字幕大全第二页| 亚洲天堂av网| 欧美国产日韩在线| 一区二区三区视频观看| 国模gogo一区二区大胆私拍| 最新中文字幕亚洲| 亚洲91精品在线| 国产日韩欧美在线播放| 亚洲精品一区av在线播放| 久久福利视频网| 久久久精品国产| 成人h猎奇视频网站| 国产欧美日韩精品专区| 国产亚洲欧洲高清| 尤物yw午夜国产精品视频明星| 91免费观看网站| 成人精品视频久久久久| 91在线精品播放| 伊人久久精品视频| 亚洲a一级视频| 亚洲综合精品伊人久久| 亚洲国产一区二区三区四区| 亚洲视频免费一区| 91国产一区在线| 亚洲激情小视频| 日韩欧美精品中文字幕| 欧美国产日韩一区二区三区| 中文字幕亚洲综合久久筱田步美| 亚洲a在线播放| 91性高湖久久久久久久久_久久99| 欧美国产日韩一区二区三区| 2019中文字幕在线免费观看| 7777kkkk成人观看| 久久精品国产精品| 亚洲天天在线日亚洲洲精| 8090成年在线看片午夜| 伊人亚洲福利一区二区三区| 在线观看国产欧美| 97色在线视频观看| 中文字幕久久精品| 黑人精品xxx一区一二区| 欧美精品日韩www.p站| 欧美做爰性生交视频| 亚洲欧美日本精品| 美女性感视频久久久| 欧美成人手机在线| 国产精品三级网站| 性欧美在线看片a免费观看| 国产精品自在线| 久久久久亚洲精品成人网小说| 精品五月天久久| 中文字幕不卡在线视频极品| 欧美xxxx做受欧美.88| 亚洲第一视频网站| 91系列在线播放| 97成人精品区在线播放| 欧美激情一区二区三区高清视频| 国产乱人伦真实精品视频| 日本视频久久久| 日韩专区在线播放| 亚洲精品视频在线观看视频| 欧美亚洲另类制服自拍| 亚洲欧美福利视频| 最近的2019中文字幕免费一页| 久久视频在线观看免费| 欧美激情国内偷拍| 91精品国产成人www| 亚洲最大av在线| 日本久久中文字幕| 国产精品久久久久9999| 日韩中文在线中文网在线观看| 国产精品久在线观看| 午夜精品一区二区三区在线| 日本欧美中文字幕| 午夜精品久久久久久久99黑人| 成人精品视频久久久久| 国产免费一区视频观看免费| 国产精品日韩专区| 九九精品在线观看| 亚洲精品中文字幕有码专区| 亚洲性av网站| 亚洲精品一区二区网址| 欧美综合国产精品久久丁香| 中文字幕久久亚洲| 欧美日韩中文字幕在线视频| 国产有码一区二区| 欧洲永久精品大片ww免费漫画| 国产精品福利网| 美女福利精品视频| 91精品久久久久久久| 亚洲第一网站免费视频| 911国产网站尤物在线观看| 51色欧美片视频在线观看| 欧美成在线视频| 韩剧1988在线观看免费完整版| 欧美一级黑人aaaaaaa做受| 亚洲情综合五月天| 日韩一区av在线| 一区二区三区国产视频| 69久久夜色精品国产69乱青草| 久久精品国产96久久久香蕉| 欧美亚洲另类在线| 欧美在线精品免播放器视频| 国产精品一区久久久| 国产精品久久久久久久久影视| 成人乱色短篇合集| 亚洲国产美女精品久久久久∴| 欧美猛男性生活免费| 国模视频一区二区| 91网在线免费观看| 亚洲va久久久噜噜噜久久天堂| 一本大道亚洲视频| 中文字幕日韩欧美| 欧美在线一区二区视频| 国产精品久久久久久久久久| 国产日韩欧美电影在线观看| 91精品视频一区| 日韩免费观看高清| 2021久久精品国产99国产精品| 国产午夜精品视频免费不卡69堂| 国产精品亚洲一区二区三区| 国产精品久久久久久久久久免费| 欧美激情一区二区三区成人| 九九热这里只有精品6| 亚洲精品电影在线| 国产精品热视频| 成人女保姆的销魂服务| 日韩毛片在线看| 国产69精品久久久久99| 欧美综合一区第一页| 亚洲精品99久久久久| 亚洲国产成人爱av在线播放| 日韩成人av一区| 久久久国产影院| 91视频免费网站| 亚洲欧美日韩另类| 国产综合在线看| 国产精品久久久久久久电影| 欧美一二三视频| 亚洲色图欧美制服丝袜另类第一页| 日韩黄色在线免费观看| www欧美日韩| 国产一区av在线| 日韩精品极品视频免费观看| 欧美日韩亚洲一区二区| 久久伊人精品一区二区三区| 亚洲欧洲中文天堂|