MTK 7.1 定时发送短信功能

此功能的主要设计思路是:
在短信添加附件的list列表中添加一个定时发送短信的选项,用户可以通过添加定时短信来设置短信要发送出去的时间,定时短信发送出去后,后台定时器会根据用户设置的时间进行定时判定,然后再重新发送短信。
关键技术:
1 定时短信时间的设置判断 (SetTimeSendMms.java)
2 在手机重启时,短信后台会接收开机广播,重新启动定时器定时
3 设置的定时短信存储到新建的数据库中(SetTimerMmsDatabase.java)
4 发送定时短信会调用系统的接口smsManager.sendTextMessage重新发生短信

以下是详细的代码实现(由于部分文件代码太过零散,单条贴出来太过混乱,不能做到参考和分析,所以将修改的具体文件贴出来,别且代码里有相关问题的备注,关键字请搜索“luoyalong@wind-mobi.com 20161215”)
有专门写的文档可以下载参考。https://download.csdn.net/download/m1126125223/10680960

1、添加定时短信

Mms/src/com/android/mms/ui/ComposeMessageActivity.java;代码太多未标出

Mms/src/com/android/mms/ui/AttachmentTypeSelectorAdapter.java
public static final int ADD_VCALENDAR           = 8;
//luoyalong@wind-mobi.com  20161215 begin
public static final int ADD_TIMER           = 9;
//luoyalong@wind-mobi.com  2015.07.29 end

------
protected static List<IconListItem> getData(int mode, Context context) {
		//luoyalong@wind-mobi.com 20161215 begin
        List<IconListItem> data;
        if(android.os.SystemProperties.get("ro.sms.time.send").equals("1")){
            data = new ArrayList<IconListItem>(9);
        }else{
            data = new ArrayList<IconListItem>(8);
        }
        //luoyalong@wind-mobi.com 20161215 end

------
      if ((mode & MODE_WITH_VCALENDAR) == MODE_WITH_VCALENDAR) {
                addItem(data, context.getString(R.string.attach_vcalendar),
                        R.drawable.ic_vcalendar_attach_menu, ADD_VCALENDAR);
            }
        }
    //luoyalong@wind-mobi.com  20161215 begin
        if(android.os.SystemProperties.get("ro.sms.time.send").equals("1")){
            addItem(data, context.getString(R.string.attach_timer),
                R.drawable.ic_attach_timer_holo_light, ADD_TIMER);
        }
    //luoyalong@wind-mobi.com  20161215 end

2、弹出绘制的时间选择器

Mms/src/com/android/mms/ui/SetTimeSendMms.java 代码太多未标出
Mms/src/com/android/mms/ui/SetTimeSendMmsUtil.java 代码太多未标出

3、设置短信定时的时间,并发送

	Mms/src/com/android/mms/ui/MessageListItem.java  代码太多未标出
	Mms/src/com/android/mms/transaction/SetATimerMmsReceiver.java 代码太多未标出

Mms/src/com/android/mms/transaction/SetMmsTimerAlarmReceiver.java	 代码太多未标出
//定时短信重新发送

Ms/src/com/android/mms/transaction/SetTimerMmsDatabase.java  代码太多未标出
//定时短信和时间的数据库
Mms/src/com/android/mms/transaction/SmsReceiverService.java  代码太多未标出


Mms/src/com/android/mms/transaction/MessagingNotification.java
//设置发送的定时短信的状态
  NotificationManager notificationMgr = (NotificationManager)
                context.getSystemService(Context.NOTIFICATION_SERVICE);

        if (isDownload) {
          //luoyalong@wind-mobi.com  20161215 begin
            if(android.os.SystemProperties.get("ro.sms.time.send").equals("1")){
               Log.d(TAG, "next is to show failed mms notification !!!");
                if(com.android.mms.ui.SetTimeSendMmsUtil.is_timer_mms == true){
                    Log.e("luoyalong01", "this mms is timer send , not show the notification !!!");
                }else{
                    notificationMgr.notify(MESSAGE_FAILED_NOTIFICATION_ID, notification);
                }
        } else {
            notificationMgr.notify(MESSAGE_FAILED_NOTIFICATION_ID, notification);
                }
            }
        }
        //luoyalong@wind-mobi.com  20161215 begin

4其他相关文件配置

Mms/AndroidManifest.xml
Mms/res/drawable-xhdpi/
Mms/res/layout/message_list_item_send.xml
等。。。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心有纤纤结

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值