這應該是群發(fā)短信軟件的問題。
在明水等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都做網(wǎng)站、網(wǎng)站設計 網(wǎng)站設計制作按需策劃,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,成都品牌網(wǎng)站建設,全網(wǎng)整合營銷推廣,外貿營銷網(wǎng)站建設,明水網(wǎng)站建設費用合理。
也就是說,在軟件編寫中,加入了發(fā)送數(shù)目的判斷。當數(shù)目多于一定量時,出現(xiàn)對話框。
有這么一個判斷,使得軟件更人性化,允許你發(fā)送前最后做一次考慮,再做決定。
應該有兩種解決方法:
一:看看軟件設置,有沒有取消提醒之類的選擇。
二:修改軟件程序,把判斷部分去掉。(這個可能性不大,必須知道軟件源碼才行)。
也有可能是手機本身的設置問題。由于我沒有用過你的手機 ,無法做出判斷。
你可以做一個簡單測試,不通過群發(fā)短信軟件,用手機直接群發(fā),看看有沒有這個問題。
如果同樣有提示,看看手機設置里面能否更改。
1:獲得內天提供者解析器: ContentResolver contentResolver = getContentResolver();
2:設置uri:Uri uri = Uri.parse("content://sms")
3:執(zhí)行delete方法: contentResolver.delete(uri,null,null);
看你上面寫的似乎不想刪除全部,執(zhí)行刪除某一個?
你的這兩個方法:
mResolver.delete(Uri.parse("content://sms/"), "_id="+ id, null));
mResolver.delete(Uri.parse("content://sms/" ), "thread_id="+ threadId, null));
第一個參數(shù)uri,第二個參數(shù):條件,第三個參數(shù):條件的值:
mResolver.delete(Uri.parse("content://sms/"), "_id=?", new String[]{"xxx"});
mResolver.delete(Uri.parse("content://sms/" ), "thread_id=?", new String[]{"xxx"}));
這里需要使用到?:占位符。
請熟讀sql語句,和方法的參數(shù)。
Android APK操作短信數(shù)據(jù)時,不能使用SQLHelper直接操作,需要使用協(xié)議,協(xié)議使用Uri轉義
content://sms/inbox 收件箱
content://sms/sent 已發(fā)送
content://sms/draft 草稿
content://sms/outbox 發(fā)件中
content://sms/failed 失敗
content://sms/queued 待發(fā)送
數(shù)據(jù)庫中sms相關的字段如下:
_id primary key integer 與words表內的source_id關聯(lián)
thread_id 會話id,一個聯(lián)系人的會話一個id,與threads表內的_id關聯(lián) integer
address 對方號碼 text
person 聯(lián)系人id integer
date 發(fā)件日期 integer
protocol 通信協(xié)議,判斷是短信還是彩信 integer 0:SMS_RPOTO, 1:MMS_PROTO
read 是否閱讀 integer default 0 0:未讀, 1:已讀
status 狀態(tài) integer default-1 -1:接收,
0:complete,
64: pending,
128: failed
type 短信類型 integer 1:inbox
2:sent
3:draft56
4:outbox
5:failed
6:queued
body 內容
service_center 服務中心號碼
subject 主題
reply_path_present
locked
error_code
seen
具體使用方法:
Cursor cursor = mContentResolver.query(Uri.parse("content://sms"), String[] projection, String selection, String[] selectionArgs,String sortOrder);
if(cursor!=null)
if(cursor.moveToFirst())
{String address = cursor .getString(draftCursor.getColumnIndexOrThrow("address"));}
query轉義sql語句時將query函數(shù)中的參數(shù)轉義為
select projection[] from sms where selection[] = selectionArgs[] order by sortOrder
由于Android2.2 Messaging中存儲草稿短信時不會將address存入sms表中,而以thread_id為索引,將草稿短信的address存入canonical_addresses表中而導致僅根據(jù)協(xié)議無法查詢到draft msgs address(這種設計缺陷是因為Android為了使UI更加效率而使draft msgs不同于其他類型的msgs存儲方式所導致的),那么根據(jù)這樣的轉義方式我們可以擴展一下這種select語句使他可以查詢到sms表以外的東西:
Cursor draftCursor = mResolver.query(Uri.parse("content://sms"),
new String[] {"canonical_addresses.address " +
"from sms,threads,canonical_addresses " +
"where sms.thread_id=threads._id and threads.recipient_ids=canonical_addresses._id and sms._id ='" +
String.valueOf(target_message_id) + "' --"},
null, null, null);
有點?;^,是吧,用到了sql語句中注釋符號“--”
這樣我們就將這個語句轉化為了:
select canonical_addresses.address from sms,threads,canonical_addresses where sms.thread_id=threads._id and threads.recipient_ids=canonical_addresses._id and sms._id = 'target_message_id' -- from sms
在sql語句解析的時候,--from sms是不予解析的,所以就成功執(zhí)行了前面的聯(lián)合查詢操作而得到了我們想要的canonical_addresses表中的address數(shù)據(jù)。