Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發之獲取手機短信

Android開發之獲取手機短信

編輯:關於Android編程

今天講如何獲取手機短信

首先是AndroidMainfest裡面需要申請的權限:

以下是獲取手機短信的代碼:

// 設置所有短信

public void getMobileMessage(Intent m) {

final String SMS_URI_ALL = "content://sms/"; //所有短信

final String SMS_URI_INBOX = "content://sms/inbox"; //未發送短信

final String SMS_URI_SEND = "content://sms/sent"; //已發送短信

final String SMS_URI_DRAFT = "content://sms/draft"; //草稿箱

int count = 0;

StringBuilder smsBuilder = new StringBuilder();

try {

ContentResolver cr = m.getContentResolver();

String[] projection = new String[] { "_id", "address", "person",

"body", "date", "type" };

Uri uri = Uri.parse(SMS_URI_ALL);

Cursor cur = cr.query(uri, projection, null, null, "date desc");


if (cur.moveToFirst()) {

String name;

String phoneNumber;

String smsbody;

String date;

String type;


int nameColumn = cur.getColumnIndex("person");

int phoneNumberColumn = cur.getColumnIndex("address");

int smsbodyColumn = cur.getColumnIndex("body");

int dateColumn = cur.getColumnIndex("date");

int typeColumn = cur.getColumnIndex("type");


do {

name = cur.getString(nameColumn);

phoneNumber = cur.getString(phoneNumberColumn);

smsbody = cur.getString(smsbodyColumn);


SimpleDateFormat dateFormat = new SimpleDateFormat(

"yyyy-MM-dd hh:mm:ss");

Date d = new Date(Long.parseLong(cur.getString(dateColumn)));

date = dateFormat.format(d);


int typeId = cur.getInt(typeColumn);

if (typeId == 1) {

type = "接收";

} else if (typeId == 2) {

type = "發送";

} else {

type = "";

}


smsBuilder.append("[");

smsBuilder.append(name + ",");

smsBuilder.append(phoneNumber + ",");

smsBuilder.append(smsbody + ",");

smsBuilder.append(date + ",");

smsBuilder.append(type);

smsBuilder.append("] ");


if (smsbody == null)

smsbody = "";


count++;

} while (cur.moveToNext() && count < 10); //讀取默認排序的前10條短信

} else {

smsBuilder.append("no result!");

}


smsBuilder.append("getSmsInPhone has executed!");

} catch (SQLiteException ex) {

Log.d("SQLiteException in getSmsInPhone", ex.getMessage());

}


個人辛勤勞動成果,如有轉載,請注明出處,謝謝!



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved