短信发送的构造


这是我之前代码,没有存入到相应的发信箱中


PendingIntent pIntent = PendingIntent.getBroadcast(MmsWriteActivity.this,
                                                        0, new Intent(), 0);
                                    
                                    SmsManager manage=SmsManager.getDefault();  
                                        List<String> all=manage.divideMessage(content);  
                                        Iterator<String> it=all.iterator();
                                        while(it.hasNext()){
                                                manage.sendTextMessage(phonenum, null, it.next(), pIntent, null);  
                                        }
                                        
                                        ContentValues values = new ContentValues(6);
                                        values.put(Sms.THREAD_ID, getOrCreateThreadId(new String[]{phonenum}));
                                    values.put(Sms.BODY,  content);
                    values.put("read", Integer.valueOf(0));
                                    values.put(Sms.TYPE, Sms.MESSAGE_TYPE_OUTBOX);
                                    values.put(Sms.DATE, System.currentTimeMillis());
                                    values.put(Sms.ADDRESS, phonenum);        
                                    SqliteWrapper.insert(MmsWriteActivity.this, getContentResolver(),  Sms.CONTENT_URI,
                                                    values);
                                    
                                    
                                    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(MmsWriteActivity.this);
                                     boolean requestDeliveryReport = prefs.getBoolean(
                                       "pref_key_sms_delivery_reports",
                                        DEFAULT_DELIVERY_REPORT_MODE);
                                     try {
                               Sms.Outbox.addMessage(getContentResolver(), phonenum,
                                               content, null, System.currentTimeMillis(), requestDeliveryReport,  getOrCreateThreadId(new String[]{phonenum}));
                         } catch (SQLiteException e) {
                         }


后来在AlreadySendListActivity中发现它的查询条件后修改为如下就可以了,有关短信的插入数据


ContentValues values = new ContentValues(6);
values.put(Sms.THREAD_ID, getOrCreateThreadId(new String[]{phonenum}));
    values.put(Sms.BODY,  content);
                    values.put("read", Integer.valueOf(1));
    values.put(Sms.TYPE, Sms.MESSAGE_TYPE_SENT);
    values.put(Sms.DATE, System.currentTimeMillis());
    values.put(Sms.ADDRESS, phonenum);
    SqliteWrapper.insert(MmsWriteActivity.this, getContentResolver(),  Sms.Sent.CONTENT_URI,
    values);
      SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(MmsWriteActivity.this);
    boolean requestDeliveryReport = prefs.getBoolean(
                      "pref_key_sms_delivery_reports",
                       DEFAULT_DELIVERY_REPORT_MODE);
    try {
    Sms.Sent.addMessage(getContentResolver(), phonenum, content, null, System.currentTimeMillis());
                } catch (SQLiteException e) {
                Log.d(TAG,"" + e);
                }



从上面我们可以看出两个问题,就是out到sent中间是有条件的,当它确认的确没欠费发送成功才会把out的中的短信移动到sent中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值