本文实例讲述了Android编程实现定时发短信功能。分享给大家供大家参考,具体如下:

第一,要实现发短信的功能,必须要用到android系统中发短信的权限,即在AndoridManifest.xml中添加如下内容

第二,使用AlarmManager来实现一个倒计时的功能,当时间到时发送短   信。AlarmManager有两个相似的用法:

1.在指定时常时候执行某项操作。

2.周期性的执行某项操作。AlarmManager对象需要配合Intent对象使用,可以定时开启一个Activity,发送一个Broadcast,或者开启一个Service。

以下是核心代码片段:

AlarmManager aManager=(AlarmManager)getSystemService(Context.ALARM_SERVICE);

Intent intent=new Intent(this,AlarmReceiver.class);

intent.setAction("AlarmReceiver");

PendingIntent pendingIntent=PendingIntent.getBroadcast(this, 0, intent, 0);

//aManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), pendingIntent);

aManager.setRepeating(AlarmManager.RTC, 0, 60*1000, pendingIntent)

第三,实现时间的设定方式。

1.可以直接使用AlarmManager对象的set方法来设定具体的闹钟时间。

2.可以使用TImePicker的方式来设定时间,这种方式比较灵活。

第四,新建一个AlarmReceiver类,来对闹钟进行响应。

1. 现在AndroidMainfest.xml里添加Receiver的声明

android:name=".AlarmReceiver"

android:label="@string/app_name">

在AlarmReceiver.java中实现对时间的获取以及发送短信的功能。发送短信需要用到SmsManager类,利用类 SmsManager 发送信息, smsManager 为 SmsManager 一个默认的实例.

SmsManager smsManager =SmsManager.getDefault();

它的方法如下

smsManager.sendTextMessage(destinationAddress,scAddress, text, sentIntent, deliveryIntent)

其中各个参数的含义如下

destinationAddress: 收件人号码

scAddress: 短信中心服务号码, 这里设置为null

text: 发送内容

sentIntent: 发送短信结果状态信号(是否成功发送),new 一个Intent , 操作系统接收到信号后将广播这个Intent.此过程为异步.

deliveryIntent: 对方接收状态信号(是否已成功接收).

最后附上详细的代码

public class YoulainaozhongActivity extends Activity {

TextView onetextview;

TextView twotextview;

TextView threetextview;

Button onebutton;

Button twobutton;

Dialog dialog = null;

//新建日历对象,用来设置闹钟时间

Calendar calendar = Calendar.getInstance();

private SharedPreferences sharedPreferences;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

calendar.setTimeInMillis(System.currentTimeMillis());

LinearLayout relativeLayout =(LinearLayout) findViewById(R.id.LinearLayout);

relativeLayout.setBackgroundResource(R.drawable.bejing);

onebutton=(Button) findViewById(R.id.onebutton);

onebutton.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

dialog();

}

});

twobutton=(Button) findViewById(R.id.twobutton);

twobutton.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

finish();

}

});

onetextview=(TextView) findViewById(R.id.onetextview);

twotextview=(TextView) findViewById(R.id.twotextview);

threetextview=(TextView) findViewById(R.id.threetextview);

sharedPreferences=getSharedPreferences("alarm_record", Activity.MODE_PRIVATE);

AlarmManager aManager=(AlarmManager)getSystemService(Context.ALARM_SERVICE);

Intent intent=new Intent(this,AlarmReceiver.class);

intent.setAction("AlarmReceiver");

PendingIntent pendingIntent=PendingIntent.getBroadcast(this, 0, intent, 0);

// aManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), pendingIntent);

aManager.setRepeating(AlarmManager.RTC, 0, 60*1000, pendingIntent);

}

public void dialog(){

View view=getLayoutInflater().inflate(R.layout.shijian, null);//

final TimePicker timePicker=(TimePicker)view.findViewById(R.id.timepicker);

final EditText oneeditext=(EditText)view.findViewById(R.id.oneeditext);

final EditText twoeditext=(EditText)view.findViewById(R.id.twoeditext);

timePicker.setIs24HourView(true);

new AlertDialog.Builder(this)

.setTitle("设置")

.setView(view)

.setPositiveButton("确定", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

String timeStr=String.valueOf(timePicker.getCurrentHour())+":"+String.valueOf(timePicker.getCurrentMinute());

/*calendar.set(Calendar.HOUR_OF_DAY,timePicker.getCurrentHour());

calendar.set(Calendar.MINUTE, 55);*/

onetextview.setText("您设置的时间为: "+timeStr);

twotextview.setText("您设置的号码为: "+oneeditext.getText().toString());

threetextview.setText("您设置的内容为: "+twoeditext.getText().toString());

sharedPreferences.edit().putString(timeStr, timeStr).commit();

sharedPreferences.edit().putString("haoma", oneeditext.getText().toString()).commit();

sharedPreferences.edit().putString("neirong", twoeditext.getText().toString()).commit();

}

}).setNegativeButton("取消", null).show();

}

}

public class AlarmReceiver extends BroadcastReceiver {

/**

* 通过广播进行扫描,是否到达时间后再响起闹铃

* */

@Override

public void onReceive(Context context, Intent intent) {

SharedPreferences sharedPreferences = context.getSharedPreferences(

"alarm_record", Activity.MODE_PRIVATE);

String hour = String.valueOf(Calendar.getInstance().get(

Calendar.HOUR_OF_DAY));

String minute = String.valueOf(Calendar.getInstance().get(

Calendar.MINUTE));

String time = sharedPreferences.getString(hour + ":" + minute, null);// 小时与分,

String haoma = sharedPreferences.getString("haoma", null);

String neirong = sharedPreferences.getString("neirong", null);

if (time != null) {// 判断是否为空,然后通过创建,

// MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.a);

Toast.makeText(context, "短信已经发送成功", Toast.LENGTH_LONG).show();

// mediaPlayer.start();// 开始 ;

sendMsg(haoma, neirong);

}

}

private void sendMsg(String number, String message) {

SmsManager smsManager = SmsManager.getDefault();

smsManager.sendTextMessage(number, null, message, null, null);

}

}

希望本文所述对大家Android程序设计有所帮助。

android 自动发彩信,Android编程实现定时发短信功能示例相关推荐

  1. android+发短信示例,Android编程实现定时发短信功能示例

    本文实例讲述了Android编程实现定时发短信功能.分享给大家供大家参考,具体如下: 第一,要实现发短信的功能,必须要用到android系统中发短信的权限,即在AndoridManifest.xml中 ...

  2. MTK 7.1 定时发送短信功能

    此功能的主要设计思路是: 在短信添加附件的list列表中添加一个定时发送短信的选项,用户可以通过添加定时短信来设置短信要发送出去的时间,定时短信发送出去后,后台定时器会根据用户设置的时间进行定时判定, ...

  3. thinkphp6对接阿里云短信服务完成定时发送短信功能

    1.导入阿里短信包 通过composer下载依赖包 composer require alibabacloud/dysmsapi-20170525 2.0.22 具体可参见阿里云短信服务 >&g ...

  4. 延迟发送:4款定时发送短信的应用程序

    发送短信已经成为朋友.家人甚至是同事之间最为常见的通讯方式之一.由于短信具备定时发送及发送报告等功能,使用起来非常灵活.当然,短信的应用程序中常常默认带有发送报告功能,而没有定时发送的功能,若是能具备 ...

  5. android 实现发送彩信,android 实现发送彩信方法 (MMS)

    最近有个突然有个想法,不去调用系统界面发送彩信功能.做过发送短信功能的同学可能第一反应是这样: 不使用 StartActivity,像发短信那样,调用一个类似于发短信的方法 SmsManager sm ...

  6. android 发短信意图,android代码实现打电话和发送短信功能

    android代码实现打电话和发送短信功能 发布时间:2020-05-27 11:57:17 来源:亿速云 阅读:172 作者:鸽子 1.XML布局 xmlns:app="http://sc ...

  7. android查询未读短信,Android实现获取未接来电和未读短信数量的方法

    本文实例展示了Android实现获取未接来电和未读短信数量的方法,在Android程序开发中非常常见,是非常实用的功能,现分享给大家供大家参考.具体如下: 一.未读短信 首先注册Observer,当有 ...

  8. linux 短信功能,Android调用系统短信功能发送短信

    Android调用系统短信功能发送短信有两种方法: 第一种,设定发送的号码,和内容,界面没有联系人,群组组等按钮,如下图所示: 代码如下: Uri smsToUri = Uri.parse(" ...

  9. Android下实现假短信功能

    为实现假短信功能,本质上是利用系统短信应用提供的ContentResolver向手机的收件箱数据库中插入一条记录,主要实现的代码如下:android 4.4版本以上只有设置成默认的短信应用才有短信的写 ...

最新文章

  1. Linux环境编程--多线程
  2. 2021年人工神经网络第四次作业 - 第三题Cifar10
  3. 牛客网(剑指offer) 第二十题 包含min函数的栈
  4. js遍历json数组给html td赋值,JS实现给json数组动态赋值的方法示例
  5. linux防火墙能阻止cc攻击吗,linux csf 防火墙 防止少量的ddos cc攻击很有效
  6. groovy定义变量获取当前时间_Groovy 变量 (Groovy 教程) – Groovy教程 中文开发手册 - Break易站...
  7. ubuntu中非常好用的PDF软件—okular
  8. git push报错:fatal: unable to access ‘https://XXX.git/‘: Failed toconnect to github.com port 443
  9. Windows修改本地域名解析文件hosts
  10. 如何提取公众号文章中的音频
  11. c语言大学程序设计题库,大连理工大学c语言...程序设计题库.doc
  12. 反转链表-就地逆置法
  13. android-23是什么手机,Android 8.1!首款helio P23/MT6763T手机曝光!
  14. 青海大学计算机系大三课程表,青海大学计算机系文体部工作计划.doc
  15. 四月单向历——你是人间四月天
  16. 软件测试人员的核心竞争力,软件测试工程师的核心竞争力是什么?
  17. 雅虎财经整合几种主流加密货币交易情况
  18. SpringAMQP简单入门, 使用Docker部署RabbitMQ至服务器
  19. 如何开始自动化员工招聘的五个提示
  20. VB 共享软件防破解设计技术初探(三)

热门文章

  1. 163邮箱登录入口大全,你知道163邮箱登录入口怎么登录吗?
  2. Python | 小白的 Asyncio 教程
  3. 五分钟搞懂什么是红黑树(全程图解)
  4. 伦敦交通局设置较低的速度限制
  5. 【html】理工男李峋的极致浪漫:爱心代码|和你的心跳同频共振
  6. word2013无法撤销解决方法-有效
  7. PowerMock使用-Mock私有方法
  8. 如果心酸就会心动也应行动
  9. c语言 菜单选择,设计一通过 c语言 个简单实用的菜单,通过菜单选择不同的菜单项并实现相应的功能。...
  10. 进阶篇:2)DFMA方法的运用