欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android編程實(shí)現(xiàn)定時(shí)發(fā)短信功能示例

 更新時(shí)間:2017年09月12日 12:20:53   作者:pku_android  
這篇文章主要介紹了Android編程實(shí)現(xiàn)定時(shí)發(fā)短信功能,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android定時(shí)發(fā)送短信功能的相關(guān)原理、實(shí)現(xiàn)方法與注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Android編程實(shí)現(xiàn)定時(shí)發(fā)短信功能。分享給大家供大家參考,具體如下:

第一,要實(shí)現(xiàn)發(fā)短信的功能,必須要用到android系統(tǒng)中發(fā)短信的權(quán)限,即在AndoridManifest.xml中添加如下內(nèi)容

<uses-permissionandroid:name="android.permission.SEND_SMS"/>

第二,使用AlarmManager來(lái)實(shí)現(xiàn)一個(gè)倒計(jì)時(shí)的功能,當(dāng)時(shí)間到時(shí)發(fā)送短   信。AlarmManager有兩個(gè)相似的用法:

1.在指定時(shí)常時(shí)候執(zhí)行某項(xiàng)操作。
2.周期性的執(zhí)行某項(xiàng)操作。AlarmManager對(duì)象需要配合Intent對(duì)象使用,可以定時(shí)開(kāi)啟一個(gè)Activity,發(fā)送一個(gè)Broadcast,或者開(kāi)啟一個(gè)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)

第三,實(shí)現(xiàn)時(shí)間的設(shè)定方式。

1.可以直接使用AlarmManager對(duì)象的set方法來(lái)設(shè)定具體的鬧鐘時(shí)間。
2.可以使用TImePicker的方式來(lái)設(shè)定時(shí)間,這種方式比較靈活。

第四,新建一個(gè)AlarmReceiver類(lèi),來(lái)對(duì)鬧鐘進(jìn)行響應(yīng)。

1. 現(xiàn)在AndroidMainfest.xml里添加Receiver的聲明

<receiver
android:name=".AlarmReceiver"
  android:label="@string/app_name">
  <intent-filter>
    <action android:name="AlarmReceiver" />
  </intent-filter>
</receiver>

在AlarmReceiver.java中實(shí)現(xiàn)對(duì)時(shí)間的獲取以及發(fā)送短信的功能。發(fā)送短信需要用到SmsManager類(lèi),利用類(lèi) SmsManager 發(fā)送信息, smsManager 為 SmsManager 一個(gè)默認(rèn)的實(shí)例.

SmsManager smsManager =SmsManager.getDefault();

它的方法如下

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

其中各個(gè)參數(shù)的含義如下

destinationAddress: 收件人號(hào)碼
scAddress: 短信中心服務(wù)號(hào)碼, 這里設(shè)置為null
text: 發(fā)送內(nèi)容
sentIntent: 發(fā)送短信結(jié)果狀態(tài)信號(hào)(是否成功發(fā)送),new 一個(gè)Intent , 操作系統(tǒng)接收到信號(hào)后將廣播這個(gè)Intent.此過(guò)程為異步.
deliveryIntent: 對(duì)方接收狀態(tài)信號(hào)(是否已成功接收).

最后附上詳細(xì)的代碼

public class YoulainaozhongActivity extends Activity {
  TextView onetextview;
  TextView twotextview;
  TextView threetextview;
  Button onebutton;
  Button twobutton;
  Dialog dialog = null;
  //新建日歷對(duì)象,用來(lái)設(shè)置鬧鐘時(shí)間
  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("設(shè)置")
    .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("您設(shè)置的時(shí)間為: "+timeStr);
    twotextview.setText("您設(shè)置的號(hào)碼為: "+oneeditext.getText().toString());
    threetextview.setText("您設(shè)置的內(nèi)容為: "+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 {
  /**
   * 通過(guò)廣播進(jìn)行掃描,是否到達(dá)時(shí)間后再響起鬧鈴
   * */
  @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);// 小時(shí)與分,
    String haoma = sharedPreferences.getString("haoma", null);
    String neirong = sharedPreferences.getString("neirong", null);
    if (time != null) {// 判斷是否為空,然后通過(guò)創(chuàng)建,
//     MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.a);
      Toast.makeText(context, "短信已經(jīng)發(fā)送成功", Toast.LENGTH_LONG).show();
//     mediaPlayer.start();// 開(kāi)始 ;
      sendMsg(haoma, neirong);
    }
  }
  private void sendMsg(String number, String message) {
    SmsManager smsManager = SmsManager.getDefault();
    smsManager.sendTextMessage(number, null, message, null, null);
  }
}

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Android短信與電話操作技巧匯總》、《Android文件操作技巧匯總》、《Android操作json格式數(shù)據(jù)技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論