Android的基本常用的簡訊操作

2021-09-07 03:38:28 字數 2522 閱讀 5659

1、呼叫系統傳送簡訊介面(傳入手機號碼+簡訊內容)

2、隱藏傳送簡訊(指定號碼指定內容)(這裡隱藏只是沒有反寫入資料庫)

3、獲得收件箱接收到的簡訊

4、android遮蔽新簡訊通知提示資訊:(contentobserver)

4、刪除剛接收到的簡訊:

a)、帶提示刪除

b)、無新簡訊通知=刪除簡訊

所用到的相關資料類:

intent、smsmanager、broadcastreceiver、contentobserver、bundle

涉及動作(action):

android.provider.telephony.sms_received

涉及許可權:

1、呼叫系統傳送簡訊介面(傳入手機號碼+簡訊內容)

(直接使用intent 意圖執行系統的sms即可--同理這裡可以使用該方式呼叫手機傳送郵件等)原始碼如下:

public void sendsms( string acontent )

2、隱藏傳送簡訊(指定號碼指定內容)(這裡隱藏只是沒有反寫入資料庫)

建立傳送自己的簡訊需要用到簡訊管理類smsmanager,使用它的sendtextmessage方法即可實現程式傳送:

public void sendsmshide(string aphonenum, string acontent)

}3、獲得收件箱接收到的簡訊

a)、方法一:

通過繼承broadcastreceiver服務,處理onreceive函式,判斷接收到的動作為sms_received

我將其封裝在receivesms(acontext, aintent);函式中只需要在onreceive()函式中呼叫即可!

public void receivesms(context acontext, intent aintent) }}

b)、方法二:繼承contentobserver類在onchange中呼叫(註冊監聽sms即可)

this.getcontentresolver().registercontentobserver(uri.parse("content://sms/"), true, content); 

4、android遮蔽新簡訊通知提示資訊:(contentobserver)

大致思路先從收件箱獲得指定未讀簡訊,在執行通知前更改為已讀,執行sql的updata即可

@override 

public void onchange(boolean selfchange) ,

"read = 0", null,

"date desc");

cursor.movetofirst(); 

for(int i =0;i=0)

); 

break;//這裡如果跳出就只能更改一條(剛收到的可以這樣實現而且手機上方將不再有簡訊提示)

}cursor.movetonext();}}

5、刪除剛接收到的簡訊:

a)、帶提示刪除(這樣不知到有什麼用。呵呵。寫出來分享)

簡訊能刪除但是當手機接收到簡訊時還會在手機通知裡面顯示給使用者

繼承broadcastreceiver類,首先獲得會話id在執行資料庫刪除即可

i、獲得會話id:

(思路這樣還可以簡潔的-網上找的大家也可以用上面的managedquery方法)

private long getthreadid(context acontext) ,where_condition,null,sort_order);

if (cursor != null)

} finally }

log.i("threadid", string.valueof(threadid));

return threadid;}

ii、執行刪除:

這裡我們可以在broadcastreceiver的onreceive函式裡面直接呼叫刪除方法如下:

long id = getthreadid(acontext);

uri muri=uri.parse("content://sms/conversations/" + id);

//無條件刪除id所有會話,第二個引數可以新增條件

acontext.getcontentresolver().delete(muri, null, null);

但 是這裡你會發現你刪除的並不是你剛才傳送的資訊,而是你上一次傳送的資訊的所有,這裡是為什麼呢,原因是我們剛剛監聽的收件箱的時候當前會話是還沒有來得 及建立的,所以刪除會話也是刪除的以前的,所以這裡我們需要時間。可以用如下方式來實現:這樣就會成功了。但是這種方式簡訊通知依然存在

new thread() catch (interruptedexception e)

long id = getthreadid(acontext);

uri muri=uri.parse("content://sms/conversations/" + id);

acontext.getcontentresolver().delete(muri, null, null);

}}.start();

Android 簡訊的還原

上篇文章講到 android 簡訊的備份 本文主要實現android 簡訊的還原,即是將一條 布局檔案 relativelayout xmlns android xmlns tools android layout width match parent android layout height m...

android 幾種傳送簡訊的方法

android中傳送簡訊很簡單,首先要在mainfest.xml中加入所需要的許可權 1 uses permissionandroid name android.permission.send sms 2 uses permissionandroid name android.permission....

Android 短信群發功能的實現

實現的程式不算難,程式提供了乙個帶列表的對話方塊供使用者選擇去發簡訊的物件,即收件人的 號碼。記錄需要 的號碼列表 arraylist sendlist new arraylist 再使用 smsmanager 向每個 號碼依次傳送簡訊。for string number sendlist 提示簡訊...