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
);
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的基本常用的簡訊操作
1 呼叫系統傳送簡訊介面 傳入手機號碼 簡訊內容 2 隱藏傳送簡訊 指定號碼指定內容 這裡隱藏只是沒有反寫入資料庫 3 獲得收件箱接收到的簡訊 4 android遮蔽新簡訊通知提示資訊 contentobserver 4 刪除剛接收到的簡訊 a 帶提示刪除 b 無新簡訊通知 刪除簡訊 所用到的相關資...
Android 簡訊的還原
上篇文章講到 android 簡訊的備份 本文主要實現android 簡訊的還原,即是將一條 布局檔案 relativelayout xmlns android xmlns tools android layout width match parent android layout height m...
Android中對SQLite的操作
1.總論 通常自定義類,並繼承自sqliteopenhelper,在預設的建構函式中,會呼叫父類的建構函式。只需將資料庫名傳入即可。super context,database name,null,database version 2.建立表 首先,獲取乙個可寫的資料庫物件 database thi...