特定の電話番号にSMSを送信する必要があるアプリケーションを開発しています。次のコードを使用してSMSを送信できます。
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, sms, null, null);
Toast.makeText(getApplicationContext(), "SMS Sent!",
Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getApplicationContext(),
"SMS faild, please try again later!",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
今私が欲しいのはSMSが自動的に行くべきだということです。メッセージが自動的に送信される時刻はMySQLデータベースに保存されているため、その時刻が来たときにチェックを続け、メッセージをその番号に自動的に送信するコードが必要です。それは一種のリマインダーです。ユーザーは、アプリケーションでリマインダーを保持します。1時間後にメッセージを受け取る必要があります。したがって、1時間後にメッセージが表示されます。PLzヘルプ??
ついにできた。
/** Code For reminder is here */
int time=Integer.parseInt(answer);
int num = (int)System.currentTimeMillis();
Intent intent = new Intent(getApplication(), MyBroadcastReceiver.class);
intent.putExtra("phoneNo",phoneNo);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.MINUTE, time);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
getApplicationContext(), num, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
+ calendar.getTimeInMillis() , pendingIntent);
Toast.makeText(getApplication(), "Alarm set in " + time + " minutes",
Toast.LENGTH_SHORT).show();
/** Code for reminder is over */
そして私の受信者コードは
public void onReceive(Context context, Intent intent) {
String sms= "Your turn is about to come. Please be ready. Thank You";
String phoneNo;
Bundle extrasBundle = intent.getExtras();
phoneNo=extrasBundle.getString("phoneNo");
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, sms, null, null);
Toast.makeText(context, "SMS Sent to " + phoneNo,Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(context,"SMS faild, please try again later!",Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
誰かがこれを必要とするかもしれない場合に備えて...ありがとう