中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android編程實現定時發短信功能示例

發布時間:2020-10-22 10:49:07 來源:腳本之家 閱讀:120 作者:pku_android 欄目:移動開發

本文實例講述了Android編程實現定時發短信功能。分享給大家供大家參考,具體如下:

第一,要實現發短信的功能,必須要用到android系統中發短信的權限,即在AndoridManifest.xml中添加如下內容

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

第二,使用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的聲明

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

在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文件操作技巧匯總》、《Android操作json格式數據技巧總結》、《Android編程之activity操作技巧總結》、《Android開發入門與進階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結》及《Android控件用法總結》

希望本文所述對大家Android程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上虞市| 普格县| 磐安县| 景宁| 苍溪县| 凉城县| 锦州市| 东阿县| 仪征市| 启东市| 浮山县| 旺苍县| 焉耆| 德保县| 河北省| 慈利县| 吐鲁番市| 米易县| 临西县| 丰县| 中牟县| 那曲县| 苗栗市| 射阳县| 建湖县| 阳信县| 兰考县| 吉林市| 沙河市| 泽库县| 渝北区| 郧西县| 广宗县| 雷山县| 鹤岗市| 阿鲁科尔沁旗| 花莲县| 正安县| 天台县| 营山县| 鹤壁市|